This site uses different types of cookies, including analytics and functional cookies (its own and from other sites). To change your cookie settings or find out more, click here. If you continue browsing our website, you accept these cookies.
2 weeks ago
There was a great post by @ChadM:
The main issue with doctotext is that it does not support PDF with images.
In the post @carpoolboy talked about using R and provided some snippet code to do this.
I attached an Alteryx example macro i built which has the R code embedded for you to use.
The great thing here is that you do not need any other executable and it works with PDF files containing images.
Please make sure you install two R packages first:
Edited 28/11/18 - attached a Batch example
@ShaanM, this is awesome!
With the new Python SDK, I'd also like to see if we could use something like PDFMiner (Python library) to do this.
First I would like to thank you for your effort on this, most outstanding!
My first attempt at using this macro gave me an error because the underlying R library was out dated. I just used the Rgui tool on my machine to update all of the R libraries to the latest in the CRAN repository and then your macro worked!
Again, thank you.
@Swift34 Glad you found it useful !
If you find you have multiple files, you could easily turn the macro into a batch macro, that would loop through each file one at a time.
Simply edit the macro and place anywhere on the canvas a 'Control parameter', not connected to anything. Dont forget to save the new macro.
Then on the original workflow feed in the stream to the two inputs:
This was also a great help to me. To help others, I wrote up a short blog post using an example PDF:
Parsing PDFs using Alteryx and a little R
Thanks @ShaanM and @Ollie_Power
This was much easier than the old methodology with the doctotext executable. Just minutes to type in the code and done!
How about OCR? If I scan a PDF, and the image is kind of rough, is there a plug-in or something that can convert it to readable text?
@PhilH - if the user can find a command line OCR executable then they can run it from within Alteryx in the Run Command tool and convert the images to text.
@PhilH another avenue to explore is R. R has many other packages that could be leveraged. I stumbled across one called Tesseract which might get you close.
Thanks for sharing the Parse Workflow. However, I have troubles importing the PDF file.
Could you please share a screenshot, which options you chose by connecting the file (e.g. csv ends up in error message).
The very first tool, the file specification needs to be .pdf
This tool points to a directory where your pdf file resides.
Unfortunately there is no pdf extention in the input tool. How can I solve this?
In my workflow which is at the top of this page it was to use a directory input.
I also attached in an earlier post a second workflow example to loop through multiple files. Each one uses a directory input not a standard input tool. There you should be specifying .pdf.
see this screen shot:
hope this helps
Thank you for your time spent on searching for the new ways of doing things
I'm wondering if you have successfully used the "Magick" package before letting tesseract do the job.Maybe you can share some nasty example.
Glad you found this insightful
In the coming weeks I am hoping to have time to build something out, and then produce a Community post.
I will keep you updated once i have a working example
@ShaanM wrote:There was a great post by @ChadM: Can-Alteryx-Parse-A-Word-Doc-Or-PDF The main issue with doctotext is that it does not support PDF with images. In the post @carpoolboy talked about using R and provided some snippet code to do this. I attached a v11.3 Alteryx example macro i built which has the R code embedded for you to use. The great thing here is that you do not need any other executable and it works with PDF files containing images. Please make sure you install two R packages first: RcppPdftools Enjoy ShaanM
I attached a v11.3 Alteryx example macro i built which has the R code embedded for you to use.
I was not able to execute it for a batch ,can you please help me with how to put /define a control parameter
Edit the macro and place a control parameter anywhere on the canvas
Then go to view>interface designer and specify output schema will change.
Any way for this to work on PDFs with multiple pages? I'm only able to pull page one
@barry my original post of the macro should work with multiple pages automatically.
Please drop me a direct message if it does not work.
@ShaanM fantastic way to do this!
@ShaanM we've used your macro as a base for so many things. Thanks!
Did you ever get a chance into looking at reading in image in PDFs?
Great PDF Parse tool, thanks!!
However, I couldn't make reading multiple PDF files work by following your batch macro instructions.
In my workflow, I just want to scrap 2 PDF files by inputting the filenames with path in the Text Input tool. So how should I config the batch macro? Should I input the GroupBy fields in the config of that batch macro?
If I don't input the GroupBy fields, I've got an Error: PDFParserBatch (16): Record #1: Tool #2: Error in file(con, "rb") : invalid 'description' argument
If I input the GroupBy fields, the macro can only parse 1 file.
Please give me some advice, thanks very much!!
@kelvinlaw, here is another tool you could try which does a similar thing, and by default is set up as a batch macro to process multiple files within a directory.
Thanks for your prompt reply. Would you mind telling me the link of the tool that you mentioned in your post?
I have edited my original post and added in a batch example
hope this helps you
@kelvinlaw that was stupid of me! Have amended the post!
I think the group by option is the one you need. The issue you have is that there isnt anything downstream of the batch macro.
If you add a browse tool or something else downstream of the batch macro I think you will find it will then batch.
It's a "feature" of using the browse anywhere rather than having tools downstream. Alteryx tries to be efficient and only process what's needed, AKA one batch for you to see in your browse anywhere sample.
It works perfectly. Much appreciated.. Thank You so much.