2013-08-21 3 views
1

PDFBox에서 "채울 수있는"양식을 가져 와서 입력란을 채운 다음이 입력란을 읽기 전용으로 설정합니다. 우리는이 작업을 통해 최종 사용자가 아닌 PDF를 쉽게 채울 수 있습니다.PDFBox - iOS에서 볼 수없는 PDF

내가 겪고있는 문제는 사용자가 iOS (및 일부 경우 Android)에서 PDF를 열 때 채울 수있는 입력란이 보이지 않는 것입니다. 다른 모든 것들은 아직 남아 있습니다. 필드가 채워져 있지 않습니다. 랩톱/데스크탑에서 작동하지 않는 동일한 pdf 파일을 열면 모든 것이 있습니다.

잘못된 이유로 입력 가능 입력란을 사용하고 있는데 더 좋은 방법이 있습니까, 아니면 해당 입력란을 사용자가 볼 수 있도록 할 수있는 방법이 있습니까? iOS에서

public PDDocument fillDynamicPDF(form, field, entry){ 
try{ 
    PDDocument pdDoc = PDDocument.load(new File("form")) 
    PDDocumentCatalog pdCatalog = pdDoc.getDocumentCatalog() 
    PDAcroForm acroForm = pdCatalog.getAcroForm() 
    acroForm.getField(field).setValue(entry) 
    acroForm.getField(field).setReadonly(true) 
    return pdDoc 
}catch(e){ 
    log.error e 
    return null 
} 
} 

답변

0

당신이 PDF 파일을 볼 수 사용하는 응용 프로그램에 따라 다릅니다 : 여기

내가 뭐하는 거지의 빠른 예입니다. 응용 프로그램이 CGPDF API 또는 QuickLook 프레임 워크를 사용하는 경우 이러한 프레임 워크는 PDF 주석 (필드는 위젯 주석을 사용)을 표시 할 수 없으므로 필드가 표시되지 않습니다.
Adobe Reader를 사용하여 파일을 보는 경우 자체 렌더링 엔진을 사용하므로 필드가 표시됩니다.
해결 방법은 읽기 전용으로 설정하는 대신 양식 필드를 병합하는 것입니다. 이 작업은 필드 내용을 페이지 내용과 병합하며 파일을 보는 데 어떤 응용 프로그램이 사용되는지 상관없이 iOS에서 볼 수 있습니다.

+0

PDFbox를 사용하여 어떻게 병합합니까? 아니면 다른 방법으로 평면화 할 수 있습니까? – Howes

+0

PDFBox API에 익숙하지 않아서 문서에서 찾을 수 있다고 가정합니다. –