양식 항목을 미리 채우도록 PDF 문서를 편집하려고했습니다. 나는 그것을 (일종의) 일하고있다. 추가하고있는 텍스트가 잘 들어갑니다. 그러나 이미 있던 다른 텍스트는 "& % £! £!"기호로 바뀌 었습니다. 아래 코드의 "contentStream"섹션과 관련이 있습니다. " 의 setFont 안녕하세요 리처드 "텍스트 더 이상 표시됩니다 도와주세요!PDFBox에서 텍스트를 뒤섞기
!"나는 그것을 제거하면 라인. 페이지는이 점을 제외하고 ... OK 남아 "
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();
}
}
Longshot하지만 그렇게 시스템에서 글꼴을로드 해 보았습니까? PDFont font = PDTrueTypeFont.loadTTF (문서, "C : \\ Windows \\ Fonts \\ segoepr.ttf"); – Levenal
그건 확실히 찔러 볼 가치가있었습니다! 고맙지 만 운은 없다 :-( –
이것은 [이 답변] (http://stackoverflow.com/questions/19322553/adding-header-to-existing-pdf)에서 해결 방법을 설명한 PDFBox 문제로 인한 것일 수 있습니다. -file-using-pdfbox/19512650 # 19512650) – mkl