最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實現(xiàn)高效打印PDF文檔的示例代碼

 更新時間:2025年06月22日 08:15:00   作者:Eiceblue  
PDF作為現(xiàn)代辦公的標(biāo)準(zhǔn)格式,其打印需求無處不在,本文將全面解析PDF打印的基礎(chǔ)操作,并深入介紹多種自動打印方法,希望可以幫助大家大幅提升工作效率

一、基礎(chǔ)打印操作詳解

通過Adobe Acrobat Reader 打?。ㄗ畛S茫?/h3>

1.打開PDF:使用 Acrobat Reader 或其他PDF閱讀器打開文件。

2.訪問打印設(shè)置:

  • 快捷鍵:Ctrl + P
  • 按鈕:工具欄上的打印機(jī)圖標(biāo)

3.核心設(shè)置項:

a.打印機(jī)選擇:從下拉菜單選擇目標(biāo)設(shè)備

b.打印范圍:

  • 所有頁面:打印整個文檔
  • 當(dāng)前視圖:打印屏幕顯示區(qū)域
  • 指定頁面:輸入如"1,3-5"打印第1頁和第3-5頁

c.頁面處理:

  • 頁面縮放方式:實際大小、適合頁面、縮小大頁面(避免內(nèi)容被裁剪)。
  • 多頁打?。嚎蛇x擇“多頁”設(shè)置,在一張紙上打印多頁。
  • 小冊子打?。河糜谥谱黩T馬釘小冊子。

d.注釋和表單:決定是否打印文檔中的批注、表單域內(nèi)容等。

e.高級選項:

作為圖像打?。航鉀Q字體或格式異常問題(但可能降低質(zhì)量)。

4.執(zhí)行打?。捍_認(rèn)設(shè)置后點擊“打印”。

關(guān)鍵提示:打印前務(wù)必在預(yù)覽窗口檢查最后一頁內(nèi)容,避免因格式問題導(dǎo)致空白頁或內(nèi)容缺失!

瀏覽器打?。o需安裝軟件)

在Chrome/Firefox/Edge中打開PDF

快捷鍵 “Ctrl + P” 調(diào)出打印界面

設(shè)置基礎(chǔ)打印參數(shù) 如打印份數(shù)、打印范圍、頁面方向、縮放比例等。

一些關(guān)鍵設(shè)置:

  • 邊距:選擇"無"可最大化內(nèi)容區(qū)域
  • 背景圖形:勾選以打印水印和背景色
  • 頁眉頁腳:默認(rèn)關(guān)閉,需手動開啟

二、自動打印方法

當(dāng)需要定時、批量或無人值守打印時,手動操作效率低下。以下是兩種自動化方案:

方案1:借助Print Conductor 軟件批量自動打印

Print Conductor 是一款高效的批量打印工具,用戶只需將多個 PDF 文件拖入其界面,配置打印參數(shù)(如打印機(jī)選擇、份數(shù)、頁面范圍、雙面模式等),即可一鍵自動按序打印所有文檔,大幅簡化重復(fù)性打印任務(wù)。

方法2:通過 C# 編程實現(xiàn)自動打?。赓M.NET庫)

在.NET 開發(fā)領(lǐng)域中,有時可能會需要將打印 PDF 的功能集成到應(yīng)用程序中。這個時候可以借助國產(chǎn) 免費庫 Free Spire.PDF for .NET  通過C# 代碼實現(xiàn)PDF文檔打印,無需安裝Adobe。(需注意免費版有頁數(shù)限制)

安裝免費.NET庫:在 “NuGet包管理器” 中搜索 “FreeSpire.PDF” 并安裝。

基本PDF打印示例:下面是一個簡單C#代碼演示了如何將指定的 PDF 文件打印到系統(tǒng)默認(rèn)的打印機(jī)上:

using Spire.Pdf;
 
namespace PrintWithDefaultPrinter
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創(chuàng)建一個 PdfDocument 對象
            PdfDocument pdf = new PdfDocument();
 
            // 加載一個 PDF 文件
            pdf.LoadFromFile("示例文檔.pdf");
 
            // 打印到默認(rèn)打印機(jī)
            pdf.Print();
 
            // 清理資源
            pdf.Dispose();
 
        }
    }
}

除了簡單打印之外, 該免費PDF庫還支持自定義打印設(shè)置,例如選擇特定的打印機(jī)、設(shè)置打印頁面范圍、調(diào)整打印份數(shù)靜默打印、將不同頁面打印到不同紙盒

方法補(bǔ)充

C# 打印PDF的常用方法

1.使用默認(rèn)程序打印

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing.Printing;
using System.IO;
using System.Runtime.InteropServices;

namespace PDF
{
    public static class PrintHelper
    {
        #region 打印機(jī)操作核心方法

        /// <summary>
        /// // 設(shè)置默認(rèn)打印機(jī)
        /// </summary>
        /// <param name="Name"></param>
        /// <returns></returns>
        [DllImport("winspool.drv")]
        public static extern bool SetDefaultPrinter(String Name);

        /// <summary>
        /// 獲取系統(tǒng)默認(rèn)打印機(jī)名稱
        /// </summary>
        public static string DefaultPrinterName()
        {
            PrintDocument fPrintDocument = new PrintDocument();
            return fPrintDocument.PrinterSettings.PrinterName;
        }

        /// <summary>
        /// 獲取本機(jī)所有打印機(jī)列表
        /// </summary>
        public static List<string> GetLocalPrinters()
        {
            List<string> fPrinters = new List<string>();
            fPrinters.Add(DefaultPrinterName());

            foreach (string fPrinterName in PrinterSettings.InstalledPrinters)
            {
                if (!fPrinters.Contains(fPrinterName))
                {
                    fPrinters.Add(fPrinterName);
                }
            }
            return fPrinters;
        }

        /// <summary>
        /// 設(shè)置指定打印機(jī)為默認(rèn)打印機(jī)
        /// </summary>
        public static bool SetLocalPrinter(string defaultPrinter)
        {
            foreach (string item in GetLocalPrinters())
            {
                if (item.Contains(defaultPrinter))
                {
                    return SetDefaultPrinter(item);
                }
            }
            return false;
        }

        #endregion

        /// <summary>
        /// 打印
        /// 通過系統(tǒng)關(guān)聯(lián)程序打印文件
        /// 需注意的是,這種方式依賴于文件類型的默認(rèn)關(guān)聯(lián)程序
        /// </summary>
        public static void PrintByDefaultProcess(string LocalPath)
        {
            Process p = new Process();
            ProcessStartInfo startInfo = new ProcessStartInfo
            {
                CreateNoWindow = true,
                WindowStyle = ProcessWindowStyle.Hidden,
                UseShellExecute = true,
                FileName = LocalPath,
                Verb = "print",  // 它會調(diào)用與文件類型關(guān)聯(lián)的默認(rèn)應(yīng)用程序來執(zhí)行打印文件,如Adobe Reader或者word或圖片查看器或其他PDF閱讀器進(jìn)行打印
                Arguments = $"/p /h \"{LocalPath}\" \"{DefaultPrinterName()}\"",
                //WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath)   // 設(shè)置工作目錄為應(yīng)用程序啟動目錄
            };
            p.StartInfo = startInfo;
            p.Start();
            p.WaitForExit(5); // 等待5秒鐘,確保打印任務(wù)已提交
        }
    }
}

需要注意的是,它雖然是一種簡單且常用的方法。但這種方法依賴于系統(tǒng)關(guān)聯(lián)的默認(rèn)應(yīng)用程序來處理打印任務(wù),適用于大多數(shù)情況,但存在一些限制和潛在問題。如pdf后綴沒有關(guān)聯(lián)默認(rèn)程序會報錯。

所以我一般不會使用這種方式。

下面會羅列其他的方法和優(yōu)缺點

2.使用命令行工具(如 Adobe Reader 的 /t 參數(shù))?

public static void PrintWithAdobeCommandLine(string filePath, string printerName)
{
    string adobePath = @"C:\Program Files\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe";
    Process.Start(adobePath, $"/t \"{filePath}\" \"{printerName}\"");
}

優(yōu)點?:繞過默認(rèn)應(yīng)用程序,強(qiáng)制使用 Adobe Reader。

?缺點?:需硬編碼 Adobe 路徑,可能因版本或安裝位置不同失效。

3.直接調(diào)用 Adobe Acrobat 的 COM 接口

如果系統(tǒng)中安裝了 Adobe Acrobat Pro,可以通過 COM 對象直接控制打?。?/p>

using Adobe.Acrobat;

public static void PrintWithAdobePdf(string filePath)
{
    Acrobat.AcroApp app = new Acrobat.AcroApp();
    Acrobat.AcroAVDoc avDoc = new Acrobat.AcroAVDoc();

    if (avDoc.Open(filePath, ""))
    {
        Acrobat.AcroPDDoc pdDoc = (Acrobat.AcroPDDoc)avDoc.GetPDDoc();
        pdDoc.PrintPages(0, 0, 0, 0, 0, 0, 0); // 參數(shù)需根據(jù)需求調(diào)整
        avDoc.Close(true);
    }
    app.Exit();
}

優(yōu)點?:直接控制 Adobe 軟件,可靠性高。

?缺點?:依賴 Adobe Acrobat Pro,非免費版;需處理 COM 引用和資源釋放。

4. 使用 .NET 的 PrintDocument 類?

結(jié)合 System.Drawing 處理 PDF(需將 PDF 渲染為圖像):

public static void PrintPdfAsImage(string filePath)
{
    using (var document = PdfDocument.Load(filePath)) // 需要 PdfiumViewer 或其他庫
    {
        var printDoc = new System.Drawing.Printing.PrintDocument();
        printDoc.PrintPage += (sender, e) =>
        {
            e.Graphics.DrawImage(document.RenderToImage(), e.MarginBounds);
            e.HasMorePages = false;
        };
        printDoc.Print();
    }
}

**優(yōu)點?:純 .NET 實現(xiàn)。

缺點?:**渲染質(zhì)量依賴庫,可能丟失文本選中等特性。

到此這篇關(guān)于C#實現(xiàn)高效打印PDF文檔的示例代碼的文章就介紹到這了,更多相關(guān)C#打印PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#實現(xiàn)打造氣泡屏幕保護(hù)效果

    C#實現(xiàn)打造氣泡屏幕保護(hù)效果

    本文是介給大家介紹一個很好玩的小程序:氣泡屏幕保護(hù)!類似于windows的屏保功能,有需要的朋友可以參考一下。
    2016-10-10
  • C#實現(xiàn).net頁面之間傳值傳參方法匯總

    C#實現(xiàn).net頁面之間傳值傳參方法匯總

    這篇文章主要介紹了C#實現(xiàn).net頁面之間傳值傳參方法,實例匯總了幾類常見的傳值傳參的方法,非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • C# 實現(xiàn)簡單打印的實例代碼

    C# 實現(xiàn)簡單打印的實例代碼

    C# 實現(xiàn)簡單打印的實例代碼,需要的朋友可以參考一下
    2013-03-03
  • C#中const,readonly和static關(guān)鍵字的用法介紹

    C#中const,readonly和static關(guān)鍵字的用法介紹

    這篇文章介紹了C#中const,readonly和static關(guān)鍵字的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • 如何在datagridview中添加button按鈕

    如何在datagridview中添加button按鈕

    這篇文章主要介紹了如何在datagridview中添加button按鈕問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • C#實現(xiàn)電腦麥克風(fēng)錄音

    C#實現(xiàn)電腦麥克風(fēng)錄音

    這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)電腦麥克風(fēng)錄音,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • c#中string的特性介紹及注意事項小結(jié)

    c#中string的特性介紹及注意事項小結(jié)

    這篇文章主要給大家介紹了關(guān)于c#中string的特性介紹及注意事項的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • C#基于UDP進(jìn)行異步通信的方法

    C#基于UDP進(jìn)行異步通信的方法

    這篇文章主要介紹了C#基于UDP進(jìn)行異步通信的方法,實例分析了C#基于UDP實現(xiàn)異步通信的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • 詳解TreeView綁定數(shù)據(jù)庫

    詳解TreeView綁定數(shù)據(jù)庫

    這篇文章主要演示了TreeView如何與數(shù)據(jù)庫進(jìn)行綁定
    2015-07-07
  • C#/VB.NET實現(xiàn)在Word文檔中添加頁眉和頁腳

    C#/VB.NET實現(xiàn)在Word文檔中添加頁眉和頁腳

    頁眉位于文檔中每個頁面的頂部區(qū)域,常用于顯示文檔的附加信息;頁腳位于文檔中每個頁面的底部的區(qū)域,常用于顯示文檔的附加信息。今天這篇文章就將為大家展示如何以編程的方式在在?Word?文檔中添加頁眉和頁腳
    2023-03-03

最新評論

新巴尔虎右旗| 六盘水市| 四川省| 黑山县| 前郭尔| 宁波市| 万山特区| 依安县| 老河口市| 仁化县| 台东市| 盐亭县| 博野县| 聂荣县| 穆棱市| 肃北| 阳江市| 常宁市| 西畴县| 广平县| 安多县| 石嘴山市| 治多县| 慈溪市| 东安县| 隆子县| 安溪县| 元阳县| 萝北县| 郸城县| 房产| 二连浩特市| 措勤县| 昆山市| 乌审旗| 莱阳市| 东莞市| 汪清县| 莱芜市| 荣成市| 林周县|