2016-06-14 5 views
0

iText7 (java)를 사용하고 있으며 pdf 페이지를 이미지로 변환하는 방법을 찾고 있습니다.itext7 pdf to image

PdfImportedPage page = writer.getImportedPage(reader, 1); 
Image image = Image.getInstance(page); 

을하지만 iText7는 PdfImportedPage을 가지고 있지 않습니다 이전이 iText 버전에서는이 작업을 수행 할 수 있습니다.

내 경우에는 한 페이지 PDF 파일이 있습니다. 단일 페이지에 맞게 표를 추가하고 pdf 내용의 크기를 조정해야합니다. 이전 iText에서 나는 테이블을 만들고, 테이블을 추가하고, 기존 PDF 페이지를 이미지로 변환하고, 이미지의 크기를 조정하고, 크기가 조정 된 이미지를 새 페이지에 추가했습니다. iText7에서이 작업을 수행 할 수있는 새로운 방법이 있습니까? , 양식 XObject에의 개념이있다

PdfPage origPage = readerDoc.getPage(1); 
Rectangle rect = origPage.getPageSize(); 
Document document = new Document(writerDoc); 
Table wrapperTable = new Table(1); 
Table containerTable = new Table(new float[]{0.5f,0.5f}); 
containerTable.setWidthPercent(100); 
containerTable.addCell("col1"); 
containerTable.addCell("col2"); 

PdfFormXObject pageCopy = origPage.copyAsFormXObject(writerDoc); 
Image image = new Image(pageCopy); 
image.setBorder(Border.NO_BORDER); 
image.setAutoScale(true); 
image.setHeight(rect.getHeight()-250); 
wrapperTable.addCell(new Cell().add(containerTable).setBorder(Border.NO_BORDER)); 
wrapperTable.addCell(new Cell().add(image).setBorder(Border.NO_BORDER)); 
document.add(wrapperTable); 
document.close(); 
readerDoc.close(); 

답변

2

iText를 7에 대한 공식 문서를 읽어 보시기 바랍니다, 더 구체적으로 Chapter 6: Reusing existing PDF documents

PDF에서 : 브루노의 대답에

덕분에 나는이 다음 코드를 사용하여 작업을 얻었다 에스. A 양식 XObject은 페이지의 콘텐츠 스트림 외부에 저장되는 PDF 콘텐츠이기 때문에 XObject는 eXternal Object를 나타냅니다. 양식양식 XObject의 사용은 사람이 필드가있는 채울 수있는 양식의 양식을 생각할 수도 있기 때문에 혼란 스러울 수 있습니다. 또 다른 페이지에서 재사용 될 수있는 PDF 구문의 조각이었다 : 그 혼란을 방지하기 위해, 우리는 당신이 PdfTemplate의 서브 클래스이었다 참조 PdfImportedPage iText를 5

에서 클래스를 용어 PdfTemplate을 소개했다. 수년 동안 사람들은 또한 PdfTemplate이라는 단어로 혼란스러워했습니다.

iText 7에서 우리는 기본으로 돌아 왔습니다. 양식 XObject에 관해서는 클래스 PdfFormXObject을 사용합니다. PDF 파일의 한 페이지에 관해서는 PdfPage 클래스를 사용합니다.

우리가 기존 문서에서 PdfPage을 얻는 방법이있다 : 우리가 새 문서에서 해당 페이지를 사용하는 방법

PdfDocument origPdf = new PdfDocument(new PdfReader(src)); 
PdfPage origPage = origPdf.getPage(1); 

입니다 :

PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); 
PdfFormXObject pageCopy = origPage.copyAsFormXObject(pdf); 

당신이 pageCopy 같은 것을 사용하려는 경우 Image은 다음과 같이 작성하십시오.

Image image = new Image(pageCopy); 
+0

감사합니다. 정보. – jkb016