기존 pdf 위에 직사각형을 그려야합니다. 여기 내가하는 일
public class Main {
public static void main(String[] args) throws IOException {
String originalFile = "C:\\Users\\original.pdf";
String modifiedFile = "C:\\Users\\modified.pdf";
PDDocument doc = PDDocument.load(new File(originalFile));
PDPage page = (PDPage) doc.getDocumentCatalog().getPages().get(0);
PDPageContentStream contentStream = new PDPageContentStream(doc, page );
drawRect(contentStream, Color.green, new java.awt.Rectangle(500, 500, 20, 200), true);
contentStream.close();
doc.save(new File(modifiedFile) ) ;
}
private static void drawRect(PDPageContentStream content, Color color, Rectangle rect, boolean fill) throws IOException {
content.addRect(rect.x, rect.y, rect.width, rect.height);
if (fill) {
content.setNonStrokingColor(color);
content.fill();
} else {
content.setStrokingColor(color);
content.stroke();
}
}
}
그러나 이것은 빈 페이지에 녹색 사각형을 만듭니다. 기존 데이터 위에 사각형이 필요합니다. 올바르게 저장합니까?
이 줄을 변경하십시오
PDPageContentStream contentStream = new PDPageContentStream(doc, page );
이에:
PDPageContentStream contentStream = new PDPageContentStream(doc, page, AppendMode.APPEND, true, true);
이렇게하면 추가 콘텐츠 스트림이 생성 될뿐만 아니라 그래픽 컨텍스트도 재설정됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다