iT邦幫忙

0

用VB.NET將A3的PDF送到印表機列印,卻印成A4

  • 分享至 

  • xImage

想請問各位大大,

如果產出的PDF確定是A3,照理說送到印表機列印就會用A3的紙印出來(確定印表機能印A3和A4的情況);反之,產出的PDF如果確定是A4,送到印表機就會用A4的紙印出來,對嗎?

還是就算產出的PDF確定是A3的,還需要額外寫程式讓他連印表機的時候也要印成A3?

因為公司的印表機只能印A4,開發的程式是給客戶專門印A3,所以不知道怎麼辦......

程式新手,還請各位大大幫幫忙!

謝謝

把Windows的印表機列印預設值的紙張大小改到A3黑白,可以在你不改PrinterSetting的前題下,自動輸出預設A3
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
player
iT邦大師 1 級 ‧ 2019-07-30 17:47:03

https://ithelp.ithome.com.tw/upload/images/20190802/20116116GV6IsRzpCF.jpg


印出來是空白的,請問該如何指定給我的 A3 PDF呢?
Public Class myform
Private WithEvents pdoc As New Drawing.Printing.PrintDocument
Dim a4Index As Integer = -1

Private Sub myform_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    'setup printer
    PrintDocument1.PrinterSettings.PrinterName = "HP LaserJet Professional P1106"

    'find A4
    For i As Integer = 0 To pdoc.PrinterSettings.PaperSizes.Count - 1
        If PrintDocument1.PrinterSettings.PaperSizes(i).PaperName = "A5" Then
            a4Index = i
            Exit For
        End If
    Next
End Sub

Private Sub PrintDocument1_QueryPageSettings(ByVal sender As Object, ByVal e As Printing.QueryPageSettingsEventArgs) Handles PrintDocument1.QueryPageSettings
    'e.PageSettings.PaperSource = Me.pdoc.PrinterSettings.PaperSources(a4Index)
    e.PageSettings.PaperSize = Me.pdoc.PrinterSettings.PaperSizes(a4Index)
End Sub

Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    PrintDocument1 = "C:\Users\Administrator\AppData\Local\Temp\1\E.pdf"
    'Me.PrintPreviewDialog1.Document = PrintDocument1
    'Me.PrintPreviewDialog1.ShowDialog()
    Me.PrintDocument1.Print()
End Sub

End Class

0
小魚
iT邦大師 1 級 ‧ 2019-07-30 18:15:03

既然印表機只能印A4,
基本上應該就不可能會有A3的選項,
最好是買一台A3的印表機,
或是你可以申請到客戶的公司去Debug...

公司的印表機只能印A4,但是客戶那邊的印表機,可以印A3和A4

1

給你一個基本觀念好了。

所謂尺寸最終處理權,永遠來自於輸出端。
PDF你設定A3或是A4。都只是一個標定值。你也可以將其視為預設值的一種宣告。

但任何一台輸出設備(印表機或影印機)。都有改變尺寸的能力(其實講白了,也只是放大縮小)
也就是說,你的程式只要能達到能設定A3尺寸就算大功告成了。

想要叫A4的印表機來印A3!!!!!這是不可能辦到的事的。
一定會強迫縮小印A4了。(雖然可以關掉能式列印出印一半但符合A3的東西出來)

了解,上網查了一下有PrintDocument,PrinterSettings,PageSettings,PaperSize,PageSetupDialog1,已眼花,盲目試了一下都沒有成果,請問該如何用程式碼將紙張改成A3或A5並印出來呢?

答案是,不可能。

我想你完全不了解我說的意義。
我用另外一種情況來問你好了。

能否在一片dvd片(4g)。來去燒錄藍光映像檔(8g)。
想也知道不可能。除非用特殊的方式。分片燒錄處理。

設備的縮放一般是屬於本機端在控管,基於「本機安全性原則」的原理。沒經過特別的管道。任何一個遠端應用語言(大多數指的是網頁程式)都不得去控制本機不被允許的東西。

我要發表回答

立即登入回答