C#'ta Yazdırmadan Önce PDF'leri Nasıl Düzleştirebilirim?

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPrint'in PrintSettings sınıfı, tüm etkileşimli form alanlarını, açıklamaları ve görüntü katmanlarını baskı esnasında statik içeriğe dönüştüren bir Flatten özelliği içerir. Flatten = true nesnesinde ayarlıyoruz ve IronPrint gerisini halleder — ayrı bir PDF manipülasyon kütüphanesi veya ara dosya kaydetme gerekli değildir.

Bu kılavuz, yazdırmadan önce PDF'lerin ne zaman ve nasıl düzleştirileceğini kapsar, senkron, birleşik ayarların ve asenkron iş akışlarının çalışan C# kodu ile.

Hızlı Başlangıç: Yazdırmadan Önce PDF'leri Düzleştir

  1. IronPrint'i NuGet ile yükleyin: Install-Package IronPrint
  2. Dosyaya using IronPrint; ekleyin
  3. Bir PrintSettings nesnesi oluşturun
  4. Flatten'i true olarak ayarlayın
  5. Ayarları Printer.Print() veya Printer.PrintAsync()'e gönderin
  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPrint yükleyin

    PM > Install-Package IronPrint
  2. Bu kod parçasını kopyalayıp çalıştırın.

    using IronPrint;
    
    // Flatten and print a PDF with form fields
    Printer.Print("form-document.pdf", new PrintSettings
    {
        Flatten = true
    });
  3. Canlı ortamınızda test etmek için dağıtın

    Bugün projenizde IronPrint kullanmaya başlayın ücretsiz deneme ile

    arrow pointer

C#'ta Yazdırmadan Önce Bir PDF'i Nasıl Düzleştirebilirim?

Bir PrintSettings nesnesinde Flatten özelliğini true olarak ayarlayarak baskı sırasında bir PDF'yi düzleştiriyoruz. Daha sonra bu nesneyi IronPrint'in yazdırma yöntemlerine aktarırız.

:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-flatten-basic.cs
using IronPrint;

// Configure print settings with flattening enabled
PrintSettings settings = new PrintSettings();
settings.Flatten = true;

// Send the flattened document to the default printer
Printer.Print("application-form.pdf", settings);
Imports IronPrint

' Configure print settings with flattening enabled
Dim settings As New PrintSettings()
settings.Flatten = True

' Send the flattened document to the default printer
Printer.Print("application-form.pdf", settings)
$vbLabelText   $csharpLabel

Önce, varsayılan değerlerle — Flatten = false dahil olmak üzere — başlatılan PrintSettings örneğini oluşturuyoruz. Ardından, Flatten'i true olarak ayarlıyoruz, bu da IronPrint'e tüm etkileşimli öğeleri yazdırma işini göndermeden önce sayfa içeriğine birleştirmesini söyler. Printer.Print çağırdığımızda, yazıcı belgeyi tam statik bir versiyon olarak alır.

Düzleştirme, yazdırma hattı sırasında bellekte gerçekleşir. Orijinal PDF dosyası disk üzerinde etkileşimli kalır, böylece son kullanıcılar formu doldurup tekrar gönderebilirler. Bu, önemli bir ayrım: yazıcı için düzleştiriyoruz, kaynak dosyayı kalıcı olarak değiştirmiyoruz.

Flatten özelliği IronPrint v2024.7.2 sürümünde tanıtıldı ve tüm sonraki sürümlerde mevcuttur.

PDF'yi Yazdırmadan Önce Ne Zaman Düzleştirmeliyim?

PDF etkileşimli öğeler içerdiğinde ve bu öğelerin kağıt üzerinde doğru şekilde görüntülenmeme riski olduğunda düzleştirme en değerlidir. En yaygın senaryolar şunlardır:

Dolabilir form alanları olan PDF'ler. Metin girişleri, onay kutuları, radyo düğmeleri ve açılır menüler PDF görüntüleyici tarafından görüntülenir — sayfa içeriğine gömülmemiştir. Bazı yazıcı sürücüleri bu katmanları tamamen atlayarak, yazdırılan sayfada boş alanlara yol açar. Düzleştirme, alan değerlerini statik sayfa katmanına zorlar.

Açıklamalar veya üst üste bindirmeler içeren PDF'ler. Yorumlar, yapışkan notlar, damgalar ve işaretleme notları ayrı bir katmanda bulunur. Düzleştirme bunları görünür içeriğe birleştirir, böylece yazdırılan çıktıda görünürler.

Farklı katmanlarda gömülü görüntüler olan PDF'ler. Birden fazla kaynaktan birleştirilmiş belgeler, farklı z-katmanlarında görüntüler içerebilir. Düzleştirme, eksik veya yanlış hizalanmış görüntüleri önleyerek her şeyi tek bir katmana toparlar.

PDF yalnızca statik metin ve görüntüler içerdiğinde — bir HTML'den oluşturulmuş rapor veya taranmış bir belge gibi — düzleştirme etkisizdir. Bu durumlarda, gereksiz işlem yükünden kaçınmak için Flatten'i varsayılan false değerinde bırakabiliriz.

Düzleştirme ve Diğer Yazdırma Ayarlarını Nasıl Birleştiririm?

PrintSettings sınıfı, Flatten yanında bir dizi özellik sunar. Kağıt boyutunu, yönlendirmeyi, DPI, kenar boşluklarını ve kopya sayısını düzleştirme ile birlikte yapılandırabiliriz — hepsi tek bir yazdırma işinde.

:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-combined-settings.cs
using IronPrint;

// Flatten and print with full configuration
PrintSettings settings = new PrintSettings
{
    Flatten = true,
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Portrait,
    Dpi = 300,
    NumberOfCopies = 2,
    PaperMargins = new Margins(10, 10, 10, 10),
    Grayscale = false
};

// Print a filled-out insurance claim form
Printer.Print("insurance-claim.pdf", settings);
Imports IronPrint

' Flatten and print with full configuration
Dim settings As New PrintSettings With {
    .Flatten = True,
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Portrait,
    .Dpi = 300,
    .NumberOfCopies = 2,
    .PaperMargins = New Margins(10, 10, 10, 10),
    .Grayscale = False
}

' Print a filled-out insurance claim form
Printer.Print("insurance-claim.pdf", settings)
$vbLabelText   $csharpLabel

Netlik için nesne başlatıcı sözdizimini kullanırız. Flatten = true, tüm form verilerinin basılı sayfada görünmesini sağlar. PaperSize.A4 ve PaperOrientation.Portrait iş formları için standart format ile eşleşir. 300'de Dpi, başlangıçta ekran çözünürlüğünde oluşturulan dolu alanlarda keskin metin üretir. PaperMargins, Margins yapıcısından milimetre cinsinden dört değer kabul eder.

Bu özellikler birbiriyle çakışmaz. IronPrint önce düzleştirme işlemini gerçekleştirir, sonra iş öncesi işi yazıcıya göndermeden önce sonuçlanan statik belgeyi kalan ayarlara göre biçimlendirir. Daha fazla yazdırma ayarları seçenekleri, yazıcı seçimi ve tepsi yapılandırmasını içeren detaylı yapılandırma kılavuzuna bakın.

Nasıl Düzleştirir ve Asenkron Yazdırırım?

Ana iş parçacığını engellemenin kabul edilemez olduğu uygulamalar için — WPF veya WinForms uygulamaları gibi — Printer.PrintAsync kullanırız. Yöntem, aynı PrintSettings nesnesini kabul eder ve bir Task döndürür.

:path=/static-assets/print/content-code-examples/how-to/flatten-pdfs/flatten-pdfs-async-flatten.cs
using IronPrint;
using System.Threading.Tasks;

public class FormPrinter
{
    public async Task PrintFlattenedFormAsync(string pdfPath)
    {
        // Flatten form fields and print asynchronously
        PrintSettings settings = new PrintSettings
        {
            Flatten = true,
            PaperSize = PaperSize.Letter,
            Dpi = 300
        };

        // Non-blocking print — UI thread stays responsive
        await Printer.PrintAsync(pdfPath, settings);
    }
}
Imports IronPrint
Imports System.Threading.Tasks

Public Class FormPrinter
    Public Async Function PrintFlattenedFormAsync(pdfPath As String) As Task
        ' Flatten form fields and print asynchronously
        Dim settings As New PrintSettings With {
            .Flatten = True,
            .PaperSize = PaperSize.Letter,
            .Dpi = 300
        }

        ' Non-blocking print — UI thread stays responsive
        Await Printer.PrintAsync(pdfPath, settings)
    End Function
End Class
$vbLabelText   $csharpLabel

Hizmet katmanında yer alan yazdırma lojiklerini içeren durumlar için bu sınıf temelli model faydalıdır. ABD formatlı formları için Flatten = true'i PaperSize.Letter ile birlikte yapılandırıyoruz. await anahtar kelimesi, IronPrint düzleştirme işlemini işlerken ve yazdırma işini gönderirken çağırma iletişim dizisini serbest bırakır.

IronPrint'in asenkron yöntemleri — PrintAsync ve ShowPrintDialogAsync gibi — tümü, eşzamanlı olanlarla aynı şekilde Flatten ayarına uyum gösterir. Sessizce veya bir yazdırma diyalog penceresi aracılığıyla yazdıralım, düzleştirme davranışı tutarlı kalır.

Sonraki Adımlarım Neler?

IronPrint'in PrintSettings.Flatten özelliğini kullanarak C# dilinde PDF'leri baskıdan önce nasıl düzleştireceğimizi inceledik. Ana çıkarım: kaynak dosyayı değiştirmeksizin baskı zamanında etkileşimli form alanlarını, açıklamaları ve görüntü katmanlarını statik içeriğe birleştirmek için Flatten = true ayarlayın.

Bunun üzerine inşa etmeye devam etmek için:

Kendi yazdırma iş akışlarınızda PDF düzleştirmeyi denemek için ücretsiz 30 günlük deneme başlatın, veya üretim kullanımı için lisans seçeneklerini görüntüleyin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 39,267 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronPrint
bir örnek calistirin belgenizin yaziciya gitmesini izleyin.