IRONSOFTWAREHOME
FILMY

Jak korzystać z wirtualnego okna podglądu i Zoom w języku C#

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

Migracja zPDFFilePrintdo IronPDF przenosi twój przebieg PDF .NET z opakowania Pdfium wyłącznie do drukowania do kompleksowej biblioteki PDF, która obsługuje tworzenie, manipulację i drukowanie w ramach jednego ujednoliconego API. Ten przewodnik zapewnia szczegółową ścieżkę migracji, która zastępuje ustawienia druku napędzane przez app.config z obiektami silnie typowanymi PrinterSettings, jednocześnie dodając możliwości generowania i manipulowania PDF, którychPDFFilePrintnie oferuje.

Dlaczego warto przejść zPDFFilePrintna IronPDF

Zrozumienie PDFFilePrint

PDFFilePrint to mały pakiet NuGet open source (MIT, autorstwa Christiana Andersena) opakowujący PdfiumViewer i Google Pdfium, aby cicho wysłać istniejący plik PDF lub XPS do sterownika drukarki. Najnowsze wydanie to 1.0.3, opublikowane 2020-02-10, skierowane na .NET Framework 4.6.1+ na Windows. Chociaż przydatne do zadań drukowania ukierunkowanych, jego funkcjonalność ogranicza się do jednego aspektu obsługi dokumentów — publiczny interfejs jest zasadniczo new FilePrint(path, null).Print() napędzany przez klucze app.config / Properties.Settings.Default.

Istotne ograniczenia PDFFilePrint

  1. Tylko drukowanie: Nie można tworzyć, edytować, scalać ani modyfikować plików PDF — klasa FilePrint zużywa istniejące pliki PDF/XPS i przekazuje je do kolejki.

  2. API napędzane plikami konfiguracyjnymi: Nazwa drukarki, rozmiar papieru, liczba kopii i tryb "drukuj do pliku" są odczytywane z app.config (Properties.Settings.Default), a nie przekazywane jako obiekt opcji silnie typowanych.

  3. Tylko Windows + .NET Framework: Celuje w net461 i pobiera natywne binaria Win32 z PdfiumViewer. Brak wsparcia .NET Core / .NET 6+ i brak wsparcia Linux/macOS.

  4. Ograniczone pokrętła drukowania: Duplex, zakres strony, orientacja i kolor polegają na domyślnych ustawieniach sterownika drukarki — brak dla nich pierwszoklasowego API.

  5. Skutecznie nie są aktualizowane: Brak wydania od wersji 1.0.3 (luty 2020) i brak publicznego repozytorium źródeł powiązanego z wykazem NuGet.

  6. Zwykła powierzchnia wyjątków: Awaria wywołana z PdfiumViewer / bufora jako ogólne wyjątki, a nie jako hierarchia błędów typowana.

  7. Brak generowania PDF-ów: Nie potrafi tworzyć PDF-ów — aby przejść od HTML, URL lub obrazów do strony drukowanej, należy połączyćPDFFilePrintz oddzielnym rendererem.

PorównaniePDFFilePrinti IronPDF

AspektPDFFilePrintIronPDF
Główny celDrukowanie PDF/XPSKompleksowe API PDF
TypOpakowanie do drukowania PdfiumNatywna biblioteka .NET + renderer Chromium
Integracjanew FilePrint(...).Print() + app.configBezpośrednie API PdfDocument
Drukowanie plików PDFTakTak
Tworzenie plików PDFNieTak (HTML, URL, obrazy)
Manipulacja plikami PDFNieTak (łączenie, dzielenie, edytowanie)
WielopłatformoweTylko Windows (net461)Windows, Linux, macOS, Docker
Obsługa błędówZwykłe wyjątki z PdfiumViewerSilnie typowane IronPdfException
IntelliSenseMinimalna (mała powierzchnia)Pełna
Pakiet NuGetPDFFilePrint 1.0.3 (MIT, luty 2020)IronPdf
Ostatnie wydanie1.0.3 (luty 2020)Aktywne wydania

Dla zespołów celujących we współczesny .NET (Framework 4.6.2+ oraz .NET 6/7/8/9/10),IronPDF daje kompleksową bazę z obsługą wieloplatformową i aktywnym rozwojem, zajmując miejsce przez ograniczenia architektoniczne PDFFilePrint.


Zanim zaczniesz

Wymagania wstępne

  1. Srodowisko .NET: .NET Framework 4.6.2+ lub .NET 6/7/8/9/10
  2. Dostęp do NuGet: Możliwość instalowania pakietów NuGet
  3. Licencja IronPDF: Uzyskaj klucz licencyjny na stronie ironpdf.com

Zmiany w pakiecie NuGet

# RemovePDFFilePrintpackage
dotnet remove package PDFFilePrint

# Install IronPDF
dotnet add package IronPdf
SHELL

Konfiguracja licencji

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Zidentyfikuj użycie PDFFilePrint

# FindPDFFilePrintAPI usages
grep -r "using PDFFilePrint\|new FilePrint" --include="*.cs" .

# Find related app.config keys
grep -r "PrinterName\|PaperName\|PrintToFile\|DefaultPrintToDirectory" \
    --include="*.config" --include="*.settings" .
SHELL

Kompletna dokumentacija API

Zmiany w przestrzeni nazw

// PDFFilePrint
using PDFFilePrint;

//IronPDF— printing flows through System.Drawing.Printing
using IronPdf;
using System.Drawing.Printing;
C#

Mapowania klas podstawowych

PDFFilePrintIronPDF
new FilePrint(path, null) (load)PdfDocument.FromFile(path)
new ChromePdfRenderer() (brak odpowiednika —PDFFilePrintnie może tworzyć plików PDF)new ChromePdfRenderer()
FilePrintPdfDocument

Mapowania metod generowania plików PDF

PDFFilePrintIronPDF
(niedostępne)renderer.RenderHtmlAsPdf(html)
(niedostępne)renderer.RenderUrlAsPdf(url)
(niedostępny — tylko drukowanie)pdf.SaveAs(path)

Mapowania ładowania i drukowania plików PDF

PDFFilePrintIronPDF
new FilePrint(path, null)PdfDocument.FromFile(path)
fileprint.Print() (niezauważalnie, zawsze)pdf.Print() (niezauważalnie) / pdf.Print(true) (dialog)
Properties.Settings.Default.PrinterName = "..." potem Print()pdf.GetPrintDocument(new PrinterSettings { PrinterName = "..." }).Print()

Mapowanie ustawień drukowania (app.config do PrinterSettings)

UstawieniePDFFilePrint(Settings.Default)IronPDF(System.Drawing.Printing.PrinterSettings)
PrinterNamePrinterName
CopiesCopies
(brak flagi ciszy — zawsze cicha)pdf.Print() (niezauważalnie) / pdf.Print(true) (pokaż dialog)
(domyślny sterownik)FromPage, ToPage, PrintRange
(domyślny sterownik)DefaultPageSettings.Landscape
(domyślny sterownik)Duplex
(domyślny sterownik)Collate
PaperNameDefaultPageSettings.PaperSize
PrintToFile + DefaultPrintToDirectoryPrintToFile + PrintFileName

Nowe funkcje niedostępne w PDFFilePrint

Funkcja IronPDFOpis
PdfDocument.Merge()Łączenie wielu plików PDF
pdf.CopyPages()Wyodrębnij konkretne strony
pdf.ApplyWatermark()Dodaj znaki wodne
pdf.SecuritySettingsOchrona hasłem
pdf.ExtractAllText()Wyodrębnij treść tekstową
pdf.RasterizeToImageFiles()Konwertuj na obrazy
pdf.SignWithDigitalSignature()Podpisy cyfrowe

Przykłady migracji kodu

Przykład 1: Konwersja HTML do PDF

Przed (PDFFilePrint):

// NuGet: Install-Package PDFFilePrint
//PDFFilePrintis a print-only wrapper around PdfiumViewer / Pdfium.
// Its FilePrint class only consumes existing PDF/XPS files — there is
// no CreateFromHtml or document-creation method.
using System;

class Program
{
    static void Main()
    {
        throw new NotSupportedException(
            "PDFFilePrint cannot convert HTML to PDF. Render the HTML to a PDF " +
            "with another library, then pass the path to new FilePrint(path, null).Print().");
    }
}
C#

Po (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
    }
}

Podstawowa różnica tutaj to zakres.PDFFilePrintnie ma ścieżki HTML-do-PDF — publiczny interfejs jest klasą FilePrint, która przekazuje istniejący PDF do drukarki.IronPDF oddziela renderowanie od obiektu dokumentu: ChromePdfRenderer obsługuje konwersję HTML do PDF i zwraca PdfDocument, który następnie zapisujesz za pomocą SaveAs().

To rozdzielenie pozwala również na konfigurację opcji renderowania w rendererze przed konwersją, oraz manipulację zwróconym PdfDocument (dodawanie znaków wodnych, scalanie z innymi plikami PDF, dodawanie zabezpieczeń) przed zapisaniem. Dodatkowe opcje renderowania można znaleźć w dokumentacji dotyczącej konwersji HTML do PDF.

Przykład 2: Konwersja adresów URL do formatu PDF

Przed (PDFFilePrint):

// NuGet: Install-Package PDFFilePrint
//PDFFilePrintcannot fetch a URL or render HTML — it only sends existing
// PDF/XPS files to a printer. URL-to-PDF requires a separate renderer.
using System;

class Program
{
    static void Main()
    {
        throw new NotSupportedException(
            "PDFFilePrint cannot convert URLs to PDF. Render the URL to a PDF with " +
            "another library first, then call new FilePrint(pdfPath, null).Print().");
    }
}
C#

Po (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
    }
}

PDFFilePrint nie ma możliwości pobierania URL.IronPDF używa dedykowanej metody RenderUrlAsPdf() w ChromePdfRenderer, która wykorzystuje silnik Chromium do renderowania nowoczesnych funkcji CSS, JavaScript i internetowych. Dowiedz się więcej o konwersji adresów URL do formatu PDF.

Przykład 3: Drukowanie plików PDF

Przed (PDFFilePrint):

// NuGet: Install-Package PDFFilePrint
using System;
using PDFFilePrint;

class Program
{
    static void Main()
    {
        // Optional: override the configured printer / copy count at runtime.
        Properties.Settings.Default.PrinterName = "Default Printer";

        var fileprint = new FilePrint("document.pdf", null);
        fileprint.Print();
        Console.WriteLine("PDF sent to printer");
    }
}

Po (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Drawing.Printing;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");

        // Silent print to the default printer
        pdf.Print();

        // Or print to a named printer with explicit PrinterSettings:
        // var settings = new PrinterSettings { PrinterName = "HP LaserJet Pro" };
        // pdf.GetPrintDocument(settings).Print();

        Console.WriteLine("PDF sent to printer");
    }
}

Ten przykład pokazuje różnicę architektoniczną między dwiema bibliotekami.PDFFilePrintinstancjuje new FilePrint(path, null) i wywołuje Print(), z nazwą drukarki i liczbą kopii odczytywanych z app.config (Properties.Settings.Default).IronPDF używa statycznej fabryki PdfDocument.FromFile() do ładowania, a następnie Print(), który korzysta z domyślnej drukarki — lub przekazujesz System.Drawing.Printing.PrinterSettings poprzez GetPrintDocument(settings).Print() do jawnej kontroli.

Najważniejsze zmiany związane z migracją:

  • new FilePrint(path, null)PdfDocument.FromFile(path)
  • Properties.Settings.Default.PrinterName = "..." + Print()pdf.GetPrintDocument(new PrinterSettings { PrinterName = "..." }).Print()
  • Domyślna drukarka: pozostaw PrinterName puste w Settings.Default → wywołaj pdf.Print()

W celu zaawansowanych ustawień druku,IronPDF używa System.Drawing.Printing.PrinterSettings. Zobacz dokumentację drukowania dla dodatkowych opcji.


Migracja zaawansowanych ustawień drukowania

Dla aplikacji używających kluczy app.config PDFFilePrint, oto jak przejść do silnie typowanych PrinterSettings w IronPDF:

//PDFFilePrintapproach — settings live in app.config and are read via
// Properties.Settings.Default. To override at runtime you mutate Settings.Default
// before instantiating FilePrint:
//   Properties.Settings.Default.PrinterName = "HP LaserJet";
//   Properties.Settings.Default.Copies = 3;
//   new FilePrint("document.pdf", null).Print();
//
//IronPDF equivalent — pass a System.Drawing.Printing.PrinterSettings per call:
using IronPdf;
using System.Drawing.Printing;

var pdf = PdfDocument.FromFile("document.pdf");

var settings = new PrinterSettings
{
    PrinterName = "HP LaserJet",
    Copies = 3,
    FromPage = 1,
    ToPage = 5,
    PrintRange = PrintRange.SomePages
};

pdf.GetPrintDocument(settings).Print();
C#

Cichy tryb

//PDFFilePrintis always silent — there is no print-dialog code path.
//IronPDF is silent by default. Pass true explicitly to show the print dialog:
pdf.Print();      // silent
pdf.Print(true);  // shows print dialog
C#

Nowe możliwości po migracji

Po migracji do IronPDF zyskujesz możliwości, których nie zapewnia PDFFilePrint:

Twórz i drukuj w jednym kroku

using IronPdf;
using System.Drawing.Printing;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #12345</h1><p>Thank you for your order.</p>");

var settings = new PrinterSettings { PrinterName = "Office Printer" };
pdf.GetPrintDocument(settings).Print();

Łączenie plików PDF

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");

Znaki wodne

var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>");
pdf.SaveAs("watermarked.pdf");

Ochrona hasłem

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SaveAs("secured.pdf");

Wyodrębnianie tekstu

var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();

Ważne uwagi dotyczące migracji

Zmiana wzorca klasy

PDFFilePrint używa małej klasy FilePrint z jedną metodą Print(), napędzaną przez app.config.IronPDF oddziela renderowanie, manipulację dokumentem i drukowanie na różne typy:

// PDFFilePrint: load + silent print (settings come from app.config)
Properties.Settings.Default.PrinterName = "HP LaserJet";
var fileprint = new FilePrint(path, null);
fileprint.Print();

// IronPDF: PdfDocument for load/manipulate, PrinterSettings for print options
var pdf = PdfDocument.FromFile(path);
var settings = new PrinterSettings { PrinterName = "HP LaserJet" };
pdf.GetPrintDocument(settings).Print();

//IronPDF can also create PDFs from HTML —PDFFilePrintcannot
var renderer = new ChromePdfRenderer();
var newPdf = renderer.RenderHtmlAsPdf(html);
newPdf.SaveAs(path);
C#

Zmiany nazewnictwa metod/ustawień

//PDFFilePrint→ IronPDF
new FilePrint(path, null)                       → PdfDocument.FromFile(path)
fileprint.Print()                               → pdf.Print()  // silent default
Properties.Settings.Default.PrinterName = "X"new PrinterSettings { PrinterName = "X" }
Properties.Settings.Default.Copies = 3new PrinterSettings { Copies = 3 }
Properties.Settings.Default.PaperName = "A4"    → settings.DefaultPageSettings.PaperSize = ...
//PDFFilePrinthas no native HTML/URL/merge/watermark methods — these are IronPDF-only.
C#

Obsługa wyjątków

// PDFFilePrint: failures bubble up from PdfiumViewer as plain exceptions
try {
    new FilePrint(path, null).Print();
}
catch (Exception ex) {
    // Nie granular error type — log the message and inner exception.
}

// IronPDF: typed exception hierarchy
try {
    pdf.Print();
}
catch (IronPdf.Exceptions.IronPdfException ex) {
    // Granular error details
}
C#

Brak zewnętrznego wykonalnego w żadnym przypadku

Obie biblioteki są dostarczane jako pakiety NuGet. Nie ma PDFFilePrint.exe do paczkowania lub usuwania — dotnet remove package PDFFilePrint jest wystarczające po stronie PDFFilePrint.IronPDF jest podobnie samodzielny dzięki pakietowi IronPdf, z natywnymi zależnościami rozwiązywanymi w czasie przywracania.


Podsumowanie porównania funkcji

FunkcjaPDFFilePrintIronPDF
Podstawowe drukowanie
Ciche drukowanie✓ (zawsze cichy)
Wiele kopii✓ (przez app.config)
Zakres stronTylko domyślny sterownik
DuplexTylko domyślny sterownik
Utwórz z HTML
Utwórz z adresu URL
Łączenie plików PDF
Podział plików PDF
Dodaj znaki wodne
Wyodrębnij tekst
Ochrona hasłem
Podpisy cyfrowe
Wielopłatformowe✗ (Windows / net461)
Natywny interfejs API .NET✓ (mała powierzchnia)

Lista kontrolna migracji

Przed migracją

  • Zlokalizuj wszystkie miejsca wywołania using PDFFilePrint; i new FilePrint(...)
  • Udokumentuj bieżące ustawienia app.config (PrinterName, PaperName, Copies, PrintToFile, DefaultPrintToDirectory)
  • Zidentyfikuj nazwy drukarek używane w różnych środowiskach
  • Zauważ dowolny kod, który mutuje Properties.Settings.Default w czasie działania
  • Zidentyfikuj możliwości dla nowych funkcji (renderowanie HTML/URL, łączenie, znaki wodne, zabezpieczenia)
  • Uzyskaj klucz licencyjny IronPDF

Zmiany w pakiecie

  • Usuń pakiet NuGet PDFFilePrint: dotnet remove package PDFFilePrint
  • Zainstaluj pakiet NuGet IronPdf: dotnet add package IronPdf
  • Zastąp using PDFFilePrint; za pomocą using IronPdf; (dodaj using System.Drawing.Printing; tam, gdzie to potrzebne)

Zmiany w kodzie

  • Dodaj konfigurację klucza licencyjnego podczas uruchamiania
  • Zastąp new FilePrint(path, null) za pomocą PdfDocument.FromFile(path)
  • Przenieś ustawienia drukarki/liczby kopii/papieru poza app.config i do System.Drawing.Printing.PrinterSettings
  • Użyj pdf.Print() do niezauważalnego wyjścia na domyślną drukarkę lub pdf.GetPrintDocument(settings).Print() dla jawnych opcji
  • Opakuj wywołania Print() w try / catch IronPdfException tam, gdzie wcześniej łapałeś ogólne wyjątki
  • Dla funkcji HTML/URL/merge/watermark (którychPDFFilePrintnigdy nie oferował), użyj ChromePdfRenderer i API manipulacji PdfDocument

Po migracji

  • Usuń specyficzne kluczePDFFilePrintz app.config
  • Wykonaj wydruk testowy na wszystkich docelowych drukarkach
  • Przetestuj międzyplatformowe działanie, jeśli to możliwe (drukowanie w Linuksie wymaga CUPS)
  • Dodaj nowe funkcje (znaki wodne, bezpieczeństwo, scalanie) w razie potrzeby
  • Aktualizacja dokumentacji

Zwróć uwagę: PDFFilePrint jest zarejestrowanym znakiem towarowym swojego odpowiedniego wlasciciela. Ta strona nie jest powiazana z, zatwierdzona ani sponsorowana przez PDFFilePrint. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.
Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta