First, I'll have to admit that those data should be modified a bit:

    wd2="56个7";
    dat={{#1[[1]], -#1[[2]]}, #2} & @@@ Map[Reverse, **Those data**, {2}];

Then, just following @Sumit's answer, we'll have to use `Inset` to do this job, but we need to further specify the alignment by using `Inset`'s Third options. Then, we also need to use the size option(the fourth option) in `Inset` to make the graphics in our desired form.

In this way, we can easily rule out the actual form of the code:

    Graphics[Inset[
        Rasterize[
         Style[wd2, ColorData["BlueGreenYellow"]@RandomReal[], Bold, 
          FontFamily -> Times], RasterSize -> 1000], #1, {Left, Top}, #2, 
        If[#2[[1]] > #2[[2]], {1, 0}, {0, 1}]] & @@@ dat, 
     PlotRange -> {{0, 1000}, {-2000, 0}}, ImageSize -> 800]

Though the result is still not satisfying, I think I'll post this first in hope that someone may further improve this code.

------

# Edit 1

The alignment and size needs a bit more formatting while the text is rotated as these options will only specify the points before rotation:

    Graphics[Inset[
        Rasterize[
         Style[wd2, ColorData["BlueGreenYellow"]@RandomReal[], Bold], 
         RasterSize -> 1000], #1, 
        If[#2[[1]] > #2[[2]], {Left, Top}, {Right, Top}], Reverse@Sort@#2,
         If[#2[[1]] > #2[[2]], {1, 0}, {0, 1}]] & @@@ dat, 
     PlotRange -> {{0, 1000}, {-2000, 0}}, ImageSize -> 800]

This time the result will be quite pleasing, and the only thing left is about opacity. Thanks for everyone!!!

[![result][1]][1]


  [1]: https://i.sstatic.net/UzGBM.jpg