2015-01-13 1 views
3

PDF 페이지 중 하나에서 이미지를 그립니다. 이미지를 그리는 데 PDPageContentStream stream = new PDPageContentStream(doc, page);을 사용하면 모든 것이 잘됩니다. 아래 이미지를 참조하십시오.PDFBox : PDPageContentStream의 추가 모드가 잘못되었습니다.

image

하지만 PDPageContentStream를 만들고 이미지를 그릴 생성자 PDPageContentStream(doc, page, true, true);를 사용하는 경우, 새로 추가 된 이미지가 거꾸로 반전됩니다 ..

image

잘못 여기 무슨 일이 일어나고 있는지 못하고 ..

추 신. 라이브러리를 사용 중입니다. PdfBox-Android

답변

5

다섯 번째 매개 변수가있는 생성자를 사용하면 그래픽 컨텍스트를 다시 설정할 수 있습니다.

public PDPageContentStream(PDDocument document, PDPage sourcePage, boolean appendContent, 
          boolean compress, boolean resetContext) throws IOException 

대안으로 저장하고

saveGraphicsState(); 
// ... 
restoreGraphicsState(); 
+0

이 좋아 호출하여 첫 ​​번째 콘텐츠 스트림 그래픽 상태를 복원, 그래서이 일을하지만, 왜? –

+2

@rabbitguy 다섯 번째 매개 변수가 없으면 그래픽 상태가 시작과 동일한 상태가 아닐 수 있습니다. 위의 예에서는 뒤집힌 것 같습니다. 이것은 누군가가 일을 마치고 나서 비워 버리지 않은 화장실에 오는 것과 같습니다. 다섯 번째 매개 변수는 처음에 그래픽 상태를 저장하고 복원하기 때문에 깨끗한 욕실을 사용하게됩니다. –