2016-07-07 2 views
0

Gibt es eine Möglichkeit, den Text zu bestimmen, der tatsächlich in einem PDTextField angezeigt wird, wenn das PDF druckt? Wenn ich setValue und dann getValue aufruft, gibt es den gesamten Text zurück, obwohl es nicht vollständig angezeigt wird.Bestimmen Sie den Text, der in mehrzeiligem PDTextField angezeigt werden kann

Ich versuche, ein Formular mit einem mehrzeiligen Textfeld von begrenzter Größe auszufüllen, das für weitere Details die Notation zum Anhängen einer weiteren Seite enthält. Ich möchte den Text auf das beschränken, was die hinzugefügte Detailseite anzeigt und generiert.

Vielen Dank für die Verwöhnung eines PDFbox-Neulings.

Antwort

2

Es gibt keine direkte Möglichkeit, das herauszufinden, da die Details des Textlayouts wie Zeilenumbrüche, Abstände und Zeilenabstände in der nichtöffentlichen Klasse PlainTextFormatter innerhalb des org.apache.pdfbox.pdmodel.interactive.form Pakets verborgen sind. Also müssten Sie diesen Code replizieren.

PDFBox versucht, den Berechnungen von Adobe Acrobat und Adobe Reader zu ähneln, aber die Details solcher Berechnungen sind nicht Teil der PDF-Spezifikation. Ihre Berechnung gilt also nur für ein ähnliches Layout-Modell. Andere Anwendungen zum Ausfüllen von Formularen haben möglicherweise ein etwas anderes Layout-Modell und daher werden Ihre Ergebnisse nicht auf diese angewendet.

Zusätzlich zu diesem Acrobat (und PDFBox) Text platzieren, obwohl es teilweise abgeschnitten sein könnte. Schauen Sie sich die Ergebnisse des Unit-Tests AlignmentTest.java an, um zu sehen, was ich meine. Man könnte also eine andere Erwartung haben als das, was "passend" wirklich bedeutet.

Da ich darüber nachgedacht habe, die Informationen darüber, welcher Text zurück in die aufrufende Anwendung passt, trotzdem zu übergeben, habe ich eine Erweiterungsanforderung https://issues.apache.org/jira/browse/PDFBOX-3413 dafür geöffnet.

Verwandte Themen