Wie zeichnet man einen string an einer bestimmten position auf einer pdf-Seite in java mithilfe der pdfbox?

Ich habe eine pdf-Koordinate (x, y) als Eingabe . Ich brauche zeichne einen string auf die angegebene Eingabe der Koordinate[ZB :- (x,y)=(200,250)]. Ich bin mit pdfbox , Wenn ich mich unter den unten angegebenen Methode moveTextPositionByAmount bin ich nicht immer die genaue position.Auch habe ich versucht mit moveTo(). Bitte helfen Sie mir, wie man den string auf eine exakte position ?

PDPageContentStream contentStream = new PDPageContentStream(document, page,true,true);
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
contentStream.moveTextPositionByAmount(xindex, yindex);
contentStream.setNonStrokingColor(color);
contentStream.drawString(comment);                      
contentStream.stroke();
contentStream.endText();

Dank.

  • Was erwarten Sie an der angegebenen position? PDF interpretiert, dass die position als baseline der text.
  • Ich will zeichnen Sie eine Zeichenfolge an dieser position , wenn ich versuchte, durch ausführen des oben aufgeführte Codes , es zieht den text mit einer großen variation im Vergleich mit dem original.
  • Ich entdeckte eine mögliche Ausgabe, cf. unten meine Antwort. Wenn mit den vorgeschlagenen fix Sie dennoch Fragen haben, geben Sie bitte ein Beispiel-Dokument ändern, indem Sie Ihren code illustriert das Problem und erklären Sie, Woher Sie diese Ziel-Koordinaten von ohnehin aufgrund der verschiedenen Koordinatensysteme bei der Arbeit innerhalb eines PDFs, und einige PDF-Prozessoren mitbringen.
  • Probe Data X:-121,Y:-305,W:-262,h:-104. Bitte überprüfen Sie den untenstehenden link für den screenshot. [link]tinypic.com/r/11b6lap/8. Ich arbeite auch auf der Zeichnung Rechteck . Ich war erfolgreich in immer die genaue Leistung, wenn Sie die gleichen Koordinaten verwendet werden . Ich habe verwendet, contentStream.fillRect(xValue,yValue,wValue,hValue) für ein viereck zeichnen ,aber das problem entsteht bei der Verwendung von drawstring.
  • Ein Screenshot tut nur helfen, wenn die PDF-Datei wird ebenfalls mitgeliefert. Außerdem haben Sie nicht erklärt, wo man diese Koordinaten aus. Sie kann umgewandelt werden, denn es gibt mehrere Koordinatensysteme, die könnten hier mit einbezogen werden.
  • Ich werde die Koordinaten aus der externen Anwendung . Sobald die Koordinaten werden transformiert , Sie funktioniert einwandfrei, während ich mit fillRect()/addRect () - Methode. Aber es funktioniert nicht für drawString()
  • Bitte liefern Sie zu einem Beispiel-PDF illustrieren das Problem. Wahrscheinlich ist sowohl ein Rechteck (das ist ok, wie du sagst) und ein string. Und erklären, wo Sie erwartet, dass der string zu sein.
  • Sorry , ich bin nicht in der Lage, um das Dokument freigeben . Mein Netzwerk ist nicht erlaubt mir, ein Dokument hochladen.
  • Dann ist es schwer zu sagen. Nur ein paar Ideen für Sie zu prüfen: gibt es irgendwelche änderungen an der aktuellen Transformationsmatrix? Tun Sie richtig betrachten, dass die Glyphe Herkunft ist auf der Grundlinie, nicht der Aufstieg oder Abstieg-Linie? Halten Sie die media-box?
  • Ich habe nicht als beliebige Transformationsmatrix , nur der code ist, wie es ist, wie oben gezeigt.Nur bekomme ich die Koordinaten wie X:-121,Y:-305,W:-262,h:-104 und die Größe der Seite Breite = 612 & height =792 und ziehen die Zeichenfolge .
  • Was ist der Ursprung der Koordinaten, die positive y-Koordinaten von oben oder unten, ist X,Y der linken unteren Ecke des Rechtecks, was ist der Sinn einer negativen Breite oder Höhe (die Sie erwähnen, W:-262,h:-104), wo im inneren, die box tun, die Sie zeichnen möchten die Schnur?

InformationsquelleAutor byreddy | 2014-07-28
Schreibe einen Kommentar