ホームページ > バックエンド開発 > C++ > .NET アプリケーションからの PDF 印刷を自動化するにはどうすればよいですか?

.NET アプリケーションからの PDF 印刷を自動化するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-23 22:17:12
オリジナル
428 人が閲覧しました

How to Automate PDF Printing from .NET Applications?

PDF ドキュメントの印刷を自動化する方法

PDF ドキュメントの印刷の自動化は、さまざまなアプリケーションで一般的なタスクです。この記事では、PDF ファイルをプリンター キューに効率的に送信し、コードから直接印刷する方法について説明します。

.NET Windows フォーム アプローチ

Windows XP 上で実行される Windows Forms .NET 4 アプリケーションでは、コマンド ラインを使用して PDF ファイルを印刷する方法が 1 つあります。これを実装する方法は次のとおりです。

using System.Diagnostics;
using System.IO;

public void SendToPrinter(string filePath)
{
    // Convert full file path to short path for command line use
    string shortPath = Path.GetShortPathName(filePath);

    // Prepare the command line arguments
    string args = $"/p \"{shortPath}\"";

    // Create a new Process object
    Process process = new Process();
    process.StartInfo.FileName = "cmd.exe";
    process.StartInfo.Arguments = "/C start " + args;
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.CreateNoWindow = true;

    // Execute the command line
    process.Start();
}
ログイン後にコピー

PdfiumViewer を使用した拡張ソリューション

PDF 印刷に特に適した別のオプションは、Google Pdfium ライブラリとその . NETラッパー、PdfiumViewer。このオープンソース ライブラリは、堅牢な PDF 印刷機能を提供します。

using PdfiumViewer;

public bool PrintPDF(
    string printer,
    string paperName,
    string filePath,
    int copies)
{
    try {
        // Create printer settings
        var printerSettings = new PrinterSettings {
            PrinterName = printer,
            Copies = (short)copies,
        };

        // Create page settings for paper size
        var pageSettings = new PageSettings(printerSettings) {
            Margins = new Margins(0, 0, 0, 0),
        };
        foreach (PaperSize paperSize in printerSettings.PaperSizes) {
            if (paperSize.PaperName == paperName) {
                pageSettings.PaperSize = paperSize;
                break;
            }
        }

        // Print PDF document
        using (var document = PdfDocument.Load(filePath)) {
            using (var printDocument = document.CreatePrintDocument()) {
                printDocument.PrinterSettings = printerSettings;
                printDocument.DefaultPageSettings = pageSettings;
                printDocument.PrintController = new StandardPrintController();
                printDocument.Print();
            }
        }
        return true;
    } catch {
        return false;
    }
}
ログイン後にコピー

この強化されたアプローチにより、印刷プロセスの制御が強化され、ユーザーの介入なしでサイレント印刷が可能になります。

以上が.NET アプリケーションからの PDF 印刷を自動化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート