1

PDF ドキュメントを編集してフォーム エントリを事前入力しようとしています。私はそれを機能させました(一種の)。私が追加しているテキストはうまくいきます。ただし、既に存在していた他のテキストは「&%£!£! 記号に置き換えられたようです。以下のコードの「contentStream」セクションと関係があることがわかりました。「 setFont" 行。これを削除しても、ページは問題ありません...ただし、"Hello Richard" というテキストは表示されなくなります。

助けてください!

package pdfboxtest;

import java.awt.Color;
import java.util.List;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;

public class PDFFormFiller {

    private static final String R40_NEW_FORM_PATH = "c:\\temp\\hmrc-r40.pdf";
    private static final String R40_COMPLETED_FORM_PATH = "c:\\temp\\hmrc-r40-complete.pdf";

    public static void main(String[] args) throws Exception {
        PDDocument doc = PDDocument.load(R40_NEW_FORM_PATH);

        addTextToPage(doc);

        doc.save(R40_COMPLETED_FORM_PATH);
        doc.close();
    }

    private static void addTextToPage(PDDocument doc) throws Exception {
        List pages = doc.getDocumentCatalog().getAllPages();
        PDPage firstPage = (PDPage) pages.get(0);
        PDPageContentStream contentStream = new PDPageContentStream(doc, firstPage, true, true);

        contentStream.setFont(PDType1Font.HELVETICA_BOLD, 24);
        contentStream.beginText();
        contentStream.setNonStrokingColor(Color.BLACK);
        contentStream.moveTextPositionByAmount(100, 200);
        contentStream.drawString("HELLO RICHARD!!");
        contentStream.endText();
        contentStream.close();

    }
}

これは、他の場所にテキストを追加する前のフォームの上部です そして、別の場所にテキストを追加した後、このテキストの一部はおかしくなりました!  私はこのビットを編集しませんでしたが

4

1 に答える 1