C 自定義紙張大小列印 PDF

2021-08-21 23:35:55 字數 1463 閱讀 2828

當列印pdf文件的時候,預設情況下紙張大小是a4。但是有些情況下原文件不是a4大小,我們需要保持原來的頁面大小怎麼辦呢?這個時候就需要自定義紙張大小來實現這個功能。本文將介紹如何使用.net pdf元件spire.pdf在c#應用程式中自定義紙張大小列印pdf。

使用虛擬印表機自定義紙張大小列印,比如保持原來頁面大小列印到pdf

//載入需要列印的pdf文件

spire.pdf.pdfdocument doc = new spire.pdf.pdfdocument();

doc.loadfromfile(filename);

//獲取原文件第一頁的紙張大小,這裡的單位是point

sizef size = doc.pages[0].size;

//例項化*****size物件,設定其寬高

//需要特別注意的是這裡涉及到單位的轉換,*****size的寬高引數預設單位是百英吋

*****size ***** = new *****size("custom", (int)size.width/72*100, (int)size.height/72*100);

*****.rawkind = (int)*****kind.custom;

//設定列印的紙張大小為原來文件的大小

doc.printsettings.*****size = *****;

//需要選擇fitsize列印模式

doc.printsettings.selectsinglepagelayout(pdfsinglepagescalingmode.fitsize, true);

//列印

doc.print();

使用真實印表機設定紙盒中的紙張大小列印,比如原來a4的文件列印成a3的大小

//載入需要列印的pdf文件

spire.pdf.pdfdocument doc = new spire.pdf.pdfdocument();

doc.loadfromfile(filename);

*****size p = null;

//例項化乙個printdialog物件來獲取當前印表機的紙盒資訊

printdialog dialogprint = new printdialog();

//遍歷印表機紙盒裡面的紙張,找到需要的a3

foreach (*****size ps in dialogprint.printersettings.*****sizes)

//設定列印的紙張大小為a3

doc.printsettings.*****size = p;

//列印

doc.printsettings.selectsinglepagelayout(pdfsinglepagescalingmode.fitsize, true);

doc.print();

QucikReport自定義紙張大小

我今天剛解決這個問題.如下.新加乙個印表機 qs little,首先你要在列印伺服器中設定一張 你定義的張如 qs little 然所把印表機預設紙張設為這 procedure find xp qs little nt2000中小紙印表機 varhandle hwnd hprinter thandl...

自定義印表機紙張型別

簡單的自定義印表機紙張更換方法,下面僅僅以a3紙張為例,其他紙張型別,方法一樣。dim ps as new pagesettings dim pdocument as new printdocument dim my size as system.drawing.printing.size if p...

VB6 DataReport列印自定義紙張

在修改報表列印的紙張大小時可選方案!private sub datareport initialize with me orientation rptorientportrait 報表縱向列印 reportwidth 14 567 寬度 567 1cm 這兒還是報錯的話可以設定成13.9 567 l...