File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ Add-Type - AssemblyName System.Drawing
2
+ Add-Type - AssemblyName System.Windows.Forms
3
+
4
+ $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
5
+ $OpenFileDialog.Filter = " Images (*.jpg)|*.jpg"
6
+ $OpenFileDialog.Multiselect = $false
7
+
8
+ if ($OpenFileDialog.ShowDialog () -eq [System.Windows.Forms.DialogResult ]::OK) {
9
+ $imgPath = $OpenFileDialog.FileName
10
+ Write-Host " File selected: $imgPath " - ForegroundColor Green
11
+ Write-Host " "
12
+ } else {
13
+ Write-Host " No file selected." - ForegroundColor Yellow
14
+ Write-Host " "
15
+ return
16
+ }
17
+
18
+ $doc = New-Object System.Drawing.Printing.PrintDocument
19
+ $doc.PrinterSettings = New-Object System.Drawing.Printing.PrinterSettings
20
+ $doc.PrinterSettings.PrinterName = " Microsoft Print to PDF"
21
+ $doc.PrinterSettings.PrintToFile = $true
22
+ $outFile = [System.IO.Path ]::ChangeExtension($imgPath , " .pdf" )
23
+ $doc.PrinterSettings.PrintFileName = $outFile
24
+
25
+ $script :_pageIndex = 0
26
+ $doc.add_PrintPage ({
27
+ param ($sender , [System.Drawing.Printing.PrintPageEventArgs ] $e )
28
+ $image = [System.Drawing.Image ]::FromFile($imgPath )
29
+ try {
30
+ $e.Graphics.DrawImage ($image , $e.PageBounds )
31
+ $e.HasMorePages = $false
32
+ } finally {
33
+ $image.Dispose ()
34
+ }
35
+ })
36
+
37
+ $doc.PrintController = New-Object System.Drawing.Printing.StandardPrintController
38
+
39
+ $doc.Print ()
40
+ Write-Host " File printed to $outFile " - ForegroundColor Green
You can’t perform that action at this time.
0 commit comments