Ok, I'm doing something that is kind of outside the box in my Access application. I have a series of reports that my app generates and puts them into PDFs. That's easy enough and pretty much standard. My question comes to how do I think take that PDF, open it up and do a Save As in order to put it into .png format? I have the PDF.ocx ActiveX control referenced so that's already set up.
Here's my small snippet of code that I'm using that is failing:
Dim vPDF As Acrobat.CAcroPDDoc
DoCmd.OpenReport rstLevels("ReportAbbrev").Value, acViewNormal, , rstLevels("Key").Value & " = '" & rstKeyNums(rstLevels("Key").Value).Value & "'"
vPDF.Open rstLevels("ReportAbbrev").Value & rstKeyNums(rstLevels("Key").Value).Value & ".PDF"
vPDF.Save 1, rstLevels("ReportAbbrev").Value & rstKeyNums(rstLevels("Key").Value).Value & ".png"
It gets to the vPDF.Open line and tells me that it's not set. I've declared vPDF correctly I believe but I'm hoping someone can help me out here! Any help would be great. I'm open to better avenues than the one I'm going down as well.
What is the PDF being opened with? I don't have adobe acrobat on my computer, but I know you can't save pdf files in other formats via Reader. I don't know about acrobat. So, maybe when you are trying to resave it that's why it goes huh.
As a side note, if you are wanting to save this and OCR it, tif's are better...but if you are going to OCR it, why not save it to doc,txt,rtf and save time
on my computer I have got Acrobat Distiller and Acrobat PDFWriter which basically act as virtual printers. So that is what I'm using. I can open up the PDF and do a Save As by hand and save it as a PNG file but I'm not getting it to work through my code.
To answer your question, I'm using PNG because it's at the request of a client for their intranet needs. The do not have adobe viewing capabilities on the computers throughout their company so they need it posted in the form of a PNG file for the purposes of posting internally. We have to also create the PDFs, though, so that the higher ups can go out to the website I've created for them and see all their reports corporation wide. So there's not the flexibility of me choosing a better format as I'm at the mercy of the client.
Anyway both of those are like printers as you said, so what essentially you are doing is printing a file to your computer through the COM1 or LPT1 port, but you think you are saving it. That being said, what happens if you say .Print vs .Save?
Well, I'm printing it. That is correct but what I'm wanting to do is then open up that report that I've printed to a PDF and then do a Save As to then save it as a PNG file. Does that make sense? So basically I want my code to act as if I opened my printed PDF file, go to the File menu, go down to Save As and click. I can do it manually and it works fine but it's been a pain in the butt trying to automate it. I was hoping that someone would have done something similar to this before.
Well, I can't leave it as a PDF file because the client I have doesn't have ability to read PDF at their store level and the client is large enough that it'd be a HUGE cost to them to upgrade all of their machines at the store level with PDF reading capabilities and they want the ability to post these reports to their intranet. Believe me, I'd LOVE to be able to leave them in PDF format but at this point it's not an option unfortunately.
So I'm REALLY hoping someone knows how to do a Save As on a PDF file to save it in another format using VB Script!!
Not if their computers are still using Windows 98 which is not longer supported. Yes, they are well behind the times!
Anyway, I have an update on this thread. I had to resort to using an outside software vendor that will convert a PDF to pretty much any format you wish it to and you can call it through a command line. So, therefore, I can automate it to convert all 5000+ PDFs into PNG format!!! The software is called ABC Amber PDF2Image converter in case you all are curious. It might come in handy for anyone who might want to convert PDFs into some other format
Thanks for the replies. I just thought that the info might come in handy to some.