Welcome › Forums › General PowerShell Q&A › How do I save a pdf file using Powershell?
- This topic has 0 replies, 1 voice, and was last updated 7 years, 11 months ago by
Forums Archives.
-
AuthorPosts
-
-
January 1, 2012 at 12:00 am #5388
by karmista at 2013-01-01 05:54:00
Using the below IE Application object, I am logging into a http website by providing username and password & attempting to download pdf files.
new-object -com InternetExplorer.Application
I have over a million files that needs to be downloaded.Currently, I get a "Find/ Save/ Cancel" prompt.
How do I save the pdf file without getting this prompt?
If the prompt cannot be avoided, there should be some way I can programatically press the save button & provide a name and save the file.
(Sendkeys method did not work well)Attempted Browsers: IE 8 & IE 9
$wshell = New-Object -ComObject WScript.Shell
$id = (gps iexplore* | where {$_.MainWindowTitle -match "MyProg"}).id
Write-host $id
$wshell.AppActivate($id)
start-sleep -milliseconds 100;
$wshell.SendKeys("%{S}");by DonJ at 2013-01-01 09:22:06
Not using PowerShell. Besides the fact that you're going through several layers to get to that COM object, it just isn't what PowerShell's designed for. If you *had* to do this with IE, I'd consider exploring AutoIt, or something else designed for that. PowerShell would want you to go down a more programmatic approach and not use IE at all. You'd create a WebRequest, feed it the URL, get the response back as a binary stream, and then write that binary stream to a file. It's a bit more complicated from a programming perspective, but it's more reliable. IE's goofy.
http://www.codeguru.com/columns/dotnett ... lasses.htm has the basic methodology, although the code is in C# and you'd need to translate. You can also do some searching for "powershell curl" and "powershell wget" – folks have solved this before in various ways. v3 has Invoke-WebRequest, which may shortcut the process a bit if you're using v3.
by karmista at 2013-01-02 04:52:34
Thanks Donj!
Will explore Invoke-WebRequest
The C# code looks puzzling as I'm a windows server admin. PowerShell comes in naturally. 🙂
Using powershell, I had almost got to the point where I get a save prompt. Thought if I can just get that working, it'd be perfect.
Yes, I can use PowerShell V3 to take the advantage of its workflows as well.by karmista at 2013-01-02 05:04:51
If I had a clear cut download url without any login required, I could have used the below System.Net.WebClient object.
PS > $source = "http://www.leeholmes.com/favicon.ico"
PS > $destination = "c:\temp\favicon.ico"
PS >
PS > $wc = New-Object System.Net.WebClient
PS > $wc.DownloadFile($source, $destination)Source: http://answers.oreilly.com/topic/2006-h ... owershell/
However, my scenario is:
1) Login to a website via providing credentials in the application i.e. within the username/password text box.
2) Post a url
EG: http://10.12.1.12/myapp/myfile.aspx?docid=49000
3) A standard pdf file gets generated i.e. myfile.pdf when I send this request from an authenticated IE browser session.
4) Save this pdf5) Rename it to 49000.pdf [Here, 49000 is the doc id.]
6) Repeat steps 2 to 5 a million times to download all the docs.
-
-
AuthorPosts
- The topic ‘How do I save a pdf file using Powershell?’ is closed to new replies.