saber - importar pdf a autocad 2017
¿Cuál es la mejor manera de importar/leer datos de archivos PDF? (4)
¿Has mirado Aspose? Lo estamos usando para una aplicación ASP.net y he visto algunos ejemplos de vbscript también. Tampoco es particularmente caro.
Obtenemos una gran cantidad de datos de nuestros clientes en archivos PDF en diversos formatos [en cuanto a diseño], estos archivos son típicamente informes de salida, y normalmente están anotados de forma adecuada [generalmente no necesitan OCR], pero no tienen el formato lo suficientemente bien como para simplemente copiar varios cientos de páginas de texto de acrobat no va a funcionar.
El mejor enfoque que he encontrado hasta ahora es escribir un script para analizar la salida xml casi válida (los comentarios no son válidos y muchos caracteres se escapan de diversas maneras, é se convierte en [[[e9]]] é, $ becomes / $,% se convierte en /% ...) de la herramienta de línea de comandos pdftoipe (para convertir archivos pdf para un programa llamado ipe ), que me da elementos de texto con sus posiciones en cada página [ver ejemplo a continuación], que funciona lo suficientemente bien para informes en los que los mismos valores se encuentran en el mismo lugar en cada página que me interesa, pero requeriría un esfuerzo adicional de scripting para importar archivos pdf de matriz [cross-tab]. pdftoipe no está destinado en absoluto a esto y, en el mejor de los casos, puede compilarse manualmente utilizando cygwin para Windows.
¿Hay bibliotecas que lo hacen fácil desde un lenguaje de scripting que puedo tolerar? Una herramienta gráfica también sería increíble. Y un pony.
La salida de pdftoipe de esta muestra se ve así:
<ipe creator="pdftoipe 2006/10/09"><info media="0 0 612 792"/>
<-- Page: 1 1 -->
<page gridsize="8">
<path fill="1 1 1" fillrule="wind">
64.8 144 m
486 144 l
486 727.2 l
64.8 727.2 l
64.8 144 l
h
</path>
<path fill="1 1 1" fillrule="wind">
64.8 144 m
486 144 l
486 727.2 l
64.8 727.2 l
64.8 144 l
h
</path>
<path fill="1 1 1" fillrule="wind">
64.8 144 m
486 144 l
486 727.2 l
64.8 727.2 l
64.8 144 l
h
</path>
<text stroke="1 0 0" pos="0 0" size="18" transformable="yes" matrix="1 0 0 1 181.8 707.88">This is a sample PDF fil</text>
<text stroke="1 0 0" pos="0 0" size="18" transformable="yes" matrix="1 0 0 1 356.28 707.88">e.</text>
<text stroke="1 0 0" pos="0 0" size="18" transformable="yes" matrix="1 0 0 1 368.76 707.88"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 692.4"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 677.88"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 663.36"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 648.84"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 634.32"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 619.8"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 605.28"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 590.76"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 576.24"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 561.72"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 547.2"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 532.68"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 518.16"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 503.64"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 489.12"> </text>
<text stroke="0 0 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 67.32 474.6"> </text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 67.32 456.24">If you can read this</text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 214.92 456.24">,</text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 219.48 456.24"> you already have A</text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 370.8 456.24">dobe Acrobat </text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 67.32 437.64">Reader i</text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 131.28 437.64">n</text>
<text stroke="0 0 1" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 141.12 437.64">stalled on your computer.</text>
<text stroke="0 0 0" pos="0 0" size="16.2" transformable="yes" matrix="1 0 0 1 337.92 437.64"> </text>
<text stroke="0 0.502 0" pos="0 0" size="12.6" transformable="yes" matrix="1 0 0 1 342.48 437.64"> </text>
<image width="800" height="600" rect="-92.04 800.64 374.4 449.76" ColorSpace="DeviceRGB" BitsPerComponent="8" Filter="DCTDecode" length="369925">
feedcafebabe...
</image>
</page>
</ipe>
Usamos Xpdf en una de nuestras aplicaciones. Es una biblioteca de C ++ que se utiliza principalmente para la representación de PDF, aunque tiene un extractor de texto que podría ser útil para este proyecto.
Si está de acuerdo con llamar a algo externo, puede usar ghostscript ; mire la secuencia de comandos ps2ascii incluida con la distribución. No estoy seguro de qué es lo que quiere de una herramienta gráfica: ¿un botón grande que empuja para elegir los archivos de entrada y salida? Una vista previa? Es posible que pueda usar GSView, dependiendo de lo que desee.
pdftohtml -xml
¡aunque pdftoipe parece más detallado!