2011-01-14 12 views
6

He estado haciendo un gran trabajo en este caso y solicito su consejo.¿Cuál es el mejor enfoque para modificar campos de formularios PDF interactivos en iOS?

Estoy construyendo una aplicación que, como parte de sus características, presenta formularios PDF; es decir, mostrarlos, permitir que los campos se cambien y guardar el archivo PDF modificado de nuevo. UIWebViews no admite formularios PDF interactivos.

uso de la API CGPDF (y beneficiarse de otras preguntas publicadas aquí y en otros lugares), sin duda puedo presentar el PDF (sin los campos de formulario/widgets), escanear y encontrar los campos del documento, averiguar dónde en la pantalla dibujar algo y hacerlos interactivos.

Lo que no puedo entender es cómo cambiar los objetos CGPDFDictionary y escribirlos de nuevo en un archivo. Uno podría usar el Apis del CGPDF para crear un nuevo documento PDF a partir de un paño completo, pero ¿cómo lo usa para modificar un archivo existente?

¿Debo buscar en otro lugar, como archivos PDF de terceros como PoDoFo o libHaru?

Me encantaría saber de cualquier persona que haya modificado con éxito un PDF y lo haya escrito de nuevo en cuanto a su enfoque.

+0

He hecho esta pregunta algunas veces (con recompensa) sin resultados. De mucha investigación y trabajo en esto, necesitas escribir una biblioteca para hacerlo usando C/C++. PoDoFo no guarda de nuevo, y libHaru no abre los pdfs existentes (en función de la memoria, podría estar al revés). Desde entonces, recién salí de ese proyecto e intenté olvidar los horrores de la API CGPDF *. * Estremecimiento * –

+0

De acuerdo. Lo más probable es que tengas que hacer el tuyo. Si no requiere que el resultado sea editable, quizás también pueda crear un PDF desde cero (UIGraphicsBeginPDFContextToFile) y renderizar su PDF existente más cualquier superposición/texto adicional que cree en él. Sin embargo, esto será bastante lento y el resultado ya no será interactivo. – omz

Respuesta

6

Alguna vez lo hice increíblemente barato al atravesar el PDF (me refiero al uso de expresiones regulares) y simplemente cambiar el texto en bruto del archivo de datos en bruto.

Puede funcionar perfectamente en situaciones simples en las que puede encontrar fácilmente el valor en cuestión.

¡No hay idea de lo que estás tratando de hacer aquí, sino un pensamiento lateral! ¡Espero eso ayude!

+0

Gracias a todos por sus comentarios. – gbreen

+1

@joe Blow, ¿podría explicar un poco más sobre cómo lo hizo? Puede ser por un código de ejemplo, etc. Gracias –

+0

@joe Blow, Esto suena como una solución perfecta para mí. ¿Puede explicar cómo se leen los datos brutos de pdf en Object-C? – AddisDev

Cuestiones relacionadas