PDF class de RPA developer en Visual Studio - C#

He estado probando la clase PDF en RPA Developer, más en lo específico

.copyfromdocument($document);
.pagefromocr($index, $language);

usando el siguiente código

 Balloon("Start");
 $pdfSelez = new PDF;
 $pathPdf = "C:\...\nombre-file.pdf";
 $pdfSelez.load($pathPdf);
 Balloon("Pdf loaded.");
 //Obtengo el texto,
 $text=$pdfSelez.pagefromocr(1, "ita");
 SaveToTxtFile($text, "C:\...\testo-ocr-da-pdf.txt");
 Balloon("texto extraido desde pdf escanerizado. End");

Este funciona bien, y me gustaría hacer la misma operación pero desde Visual Studio, con C#.

Para extraer el texto de un pdf he visto que es posibile usar, por ejemplo, la libreria iTextSharp.

Pero para obtener el texto de un pdf de un documento escanerizado necesitaria de la clase .pagefromocr($index, $language) de RPA Developer.
No he encontrado nada al respecto en la documentación de RPA developer, los video tutotial y los proyectos de ejemplo que vienen con el rpa developer.

Alguna sugerencia?
Gracias

Hola @rodrigo_lopez, sí tengo una sugerencia. Cartes te permite lanzar código en Cartes Script desde C#. Es bien sencillo. Puedes usar directamente el ActiveX de Cartes invocando a Execute(string command) o, y a mi me gusta más, la librería de C# RPABaseAPI. En ella tienes un método de la clase MyCartes, de la que heredan MyCartesProcess y MyCartesAPI, que te permite hacer la llamada. Tu código en C# quedaría tal que así:

valor = Execute("Balloon(\"Start\");\r\n" +
                "$pdfSelez = new PDF;\r\n" +
                "$pathPdf = \"C:\\...\\nombre-file.pdf\";\r\n" +
                "$pdfSelez.load($pathPdf);\r\n" +
                "Balloon(\"Pdf loaded.\");\r\n" +
                "//Obtengo el texto,\r\n" +
                "$text=$pdfSelez.pagefromocr(1, \"ita\");\r\n" +
                "SaveToTxtFile($text, \"C:\\...\\testo-ocr-da-pdf.txt\");\r\n" +
                "Balloon(\"texto extraido desde pdf escanerizado. End\");\r\n" +
                "return \"Puedes devolver el texto que quieras\";");

Por favor, dinos si te sirvió.

Un saludo

1 Like

He probado tu sugerencia usando directamente el ActiveX con el Execute, ha funcionado perfectamente.
Muchas gracias!