IRONSOFTWAREHOME
VIDEOLAR

C#'da Bir Şablondan PDF Nasıl Üretilir | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 Temmuz 2026

RawPrint'ten IronPDF'ye geçmek bir ikame yerine yeniden yapılandırmadır:RawPrintve IronPDF farklı problemleri çözer ve çoğu ekip için dürüst çerçeve "takviye"dir, "değiştirme" değildir. Bu kılavuz, IronPDF'nin gerçekten birRawPrinthattını (Windows'ta bir PDF oluşturup gönderme iş akışları) özümlediği durumları ele alırken, RawPrint'i yerinde tutmanız gereken durumları (ESC/POS, ZPL, EPL, ham PCL) işaret eder.

RawPrint'ten IronPDF'e Neden Geçilmeli

RawPrint Anlama

RawPrint, NuGet paketi RawPrint (frogmorecs/RawPrint, v0.5.0, son yayımlanma tarihi Eylül 2019, şu anda nuget.org'da listelenmemiş/eski). RAW veri tipi ile doğrudanWindowsyazdırma kuyruğuna bayt akışı gönderen ince bir P/Invoke sarmalayıcıdır winspool.Drv üzerinde. Halka açık API küçüktür: Printer sınıfı, IPrinter uygulayan ve PrintRawFile ile PrintRawStream aşırı yüklemelerine maruz kalan RawPrint ad alanındadır. Alttaki Win32 çağrıları (OpenPrinter, StartDocPrinter, WritePrinter, EndDocPrinter, ClosePrinter) bu arayüzün arkasına gizlenmiştir — paketi kullanırken onları kendiniz yazmazsınız.

Bu, RawPrint'i ESC/POS fiş yazıcıları, ZPL/EPL Zebra etiket yazıcıları ve yazıcı yazılımının beklediği baytların daha önceden üretildiği miras PCL/PostScript işleri için iyi bir uyum haline getirir. Windows'a özgü ortamları hedefleyen ve doğrudan yazıcı iletişimi gerektiren geliştiriciler için,RawPrintyazıcı sürücüleri veya grafik arayüzler gibi ara katmanları atlayarak verimli bir yol sunar.

Bununla birlikte,RawPrintbir PDF kütüphanesi değildir - sadece verileri yazıcılara iletir. Uygulamanız başka bir kütüphanede bir PDF oluşturuyorsa ve ardından RawPrint'e yolluyorsa, bu tüm hat genellikleWindowsüzerinde IronPDF ile birleştirilebilir.

Temel Sorun: PDF Oluşturulamaması

RawPrint, modern belge iş akışları için uygunsuz yapan belirgin sınırlamalar içerir:

  1. PDF Oluşturma Yok: RawPrint, yalnızca veri iletimine odaklanır ve PDF oluşturma, işleme veya manipülasyonu için hiçbir işlevsellik içermez.

  2. Çok Düşük Düzey: Ham byte'larla uğraşarak, geliştiricilerin yazıcının komut dilini derinlemesine anlaması gerekir ve bu, doğrudan doküman baskı görevleri için daha az uygundur.

  3. Platforma Özgü: Bu,Windowsyazdırma havuzcularına bağlıdır ve çapraz platform uygulanabilirliğini sınırlar.

  4. Belge İşleme Yok: Sadece byte iletimi vardır, işleme yetenekleri yoktur.

  5. Sınırlı Kontrol: Minik baskı işi yapılandırma seçenekleri.

RawPrint vs IronPDF Karşılaştırması

ÖzellikRawPrintIronPDF
İşlevsellikHam baskı verilerini doğrudan yazıcıya gönderirKapsamlı PDF oluşturma ve işleme
Kullanım DurumuEtiketler gibi özel baskılarGenel belge yönetimi ve oluşturma
Platform BağımlılığıWindows'a özelÇapraz platform
KarmaşıklıkAlt düzey, yazıcı komuta bilgisi gerektirirYüksek seviyeli, kullanıcı dostu API
PDF OluşturmaHayırEvet
HTML'den PDF OluşturmaHayırEvet
URL'den PDF OluşturmaHayırEvet
PDF Düzenle/DeğiştirHayırEvet
PDF Birleştir/BölHayırEvet
Mevcut PDF'yi YazdırEvet (ham byte)Evet (yüksek seviyeli API)
Yazdırma KontrolüTemelTüm seçenekler
İdeal içinDoğrudan yazıcı erişimi ihtiyaçlarıWeb ve masaüstü uygulamalarında PDF ile ilgili görevler
EsneklikHam byte işlemesi nedeniyle sınırlıBirden çok işlevsellik ile kapsamlı

RawPrint'e kıyasla,IronPDF PDF'leri kapsamlı şekilde ele almak için güçlü ve çeşitli bir API sunar. .NET ortamında tanınmış bir isim olarak, IronPDF, geliştiricilere platformlar arası kolay PDF oluşturma, değiştirme ve dönüştürme yetkinliği sağlar.

Modern .NET'i hedefleyen ekipler için, IronPDF, RawPrint'in tasarım gereği sağlayamadığı, çapraz platform uyumluluğu sunar.


Başlamadan Önce

Ön Koşullar

  1. .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet Erişimi: NuGet paketlerini yükleyebilme
  3. IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin

NuGet Paket Değişiklikleri

# Remove RawPrint
dotnet remove package RawPrint

# Install IronPDF
dotnet add package IronPdf
SHELL

Lisans Yapılandırması

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

RawPrint Kullanımını Bulma

# Identify all RawPrint usage
grep -r "using RawPrint" --include="*.cs" .
grep -r "PrintRawFile\|PrintRawStream" --include="*.cs" .
SHELL

Not: @@winspool.Drv çevresinde el yapımı P/Invoke sarmalayıcılar bazen sınıf adını RawPrinterHelper kullanır ve yüzeysel olarakRawPrintkullanımına benzer görünür, fakat paket değildir — doğrudan Win32 yazıcı kuyruğunu çağırırlar. Paketin kendisi yalnızca IPrinter ve PrintRawFile ve PrintRawStream ile açığa çıkarır.


Tam API Referansı

Ad Alanı Değişiklikleri

// Before: RawPrint
using RawPrint;

// After: IronPDF
using IronPdf;

Temel API Eşlemeleri

RawPrint(gerçek halka açık API)IronPDFNotlar
new Printer() / IPrinternew ChromePdfRenderer() / PdfDocumentRawPrintbaytları gönderir;IronPDF PDF üretir
printer.PrintRawFile(name, path, paused)PdfDocument.FromFile(path).Print()IronPDF OS yazdırma sistemine yeniden işler; RAW değil
printer.PrintRawStream(name, stream, doc, paused)new PdfDocument(stream).Print()Aynı uyarı
printer.OnJobCreated olayıyokIronPDF yazdırma seçeneklerini kullanın
yokChromePdfRenderer.RenderHtmlAsPdf()PDF oluştur
yokPdfDocument.Merge()PDF'leri birleştir
yokpdf.ApplyWatermark()Filigran ekleme

IronPDF, belgeyi işletim sistemine teslim ederek yazdırır, ham bayt akışıyla kuyruğa göndermez. Yazıcınız RAW veri türünü gerektiriyorsa (ESC/POS, ZPL, belirli PCL iş akışları), bu RawPrint'in işidir ve IronPDF bunun yerine geçemez.


Kod Göç Örnekleri

Örnek 1: HTML'den PDF'ye Dönüştürme

Önce (RawPrint):

// NuGet: Install-Package RawPrint
using System;
using System.IO;
using System.Text;
using RawPrint;

class Program
{
    static void Main()
    {
        //RawPrintcannot convert HTML to PDF. Sending raw HTML bytes to a printer just
        // prints the HTML source as text — the markup is not rendered.
        string html = "<html><body><h1>Hello World</h1></body></html>";
        byte[] data = Encoding.ASCII.GetBytes(html);

        IPrinter printer = new Printer();
        using (var stream = new MemoryStream(data))
        {
            // PrintRawStream(printerName, stream, documentName, paused)
            printer.PrintRawStream("Microsoft Print to PDF", stream, "HTML Document", false);
        }
        Console.WriteLine("Raw HTML bytes sent to spooler (not rendered).");
    }
}
C#

Sonrası (IronPDF):

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}

Mimari uyumsuzluk, paketin kendi dost API'siyle bile görünür: RawPrint, RAW veri türüyleWindowsyazıcı kuyruğuna bayt gönderir, bu nedenle HTML'yi teslim ettiğinizde, yazıcının kaynak metni yazdırmasına neden olur. IronPDF'in ChromePdfRenderer aslında işaretlemeyi render eder. Kapsamlı örnekler için HTML'den PDF'e belgelere bakın.

Örnek 2: URL'den PDF'ye Dönüştürme

Önce (RawPrint):

// NuGet: Install-Package RawPrint
using System;
using System.IO;
using System.Net.Http;
using System.Text;
using RawPrint;

class Program
{
    static void Main()
    {
        //RawPrintcannot fetch a URL or render a web page; downloading the HTML and
        // shipping it to the spooler just prints the raw HTML source.
        using (var client = new HttpClient())
        {
            string htmlSource = client.GetStringAsync("https://example.com").GetAwaiter().GetResult();
            byte[] data = Encoding.UTF8.GetBytes(htmlSource);

            IPrinter printer = new Printer();
            using (var stream = new MemoryStream(data))
            {
                printer.PrintRawStream("Microsoft Print to PDF", stream, "Web Page", false);
            }
            Console.WriteLine("Raw HTML sent to spooler (not a rendered PDF).");
        }
    }
}
C#

Sonrası (IronPDF):

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        // Render a live website directly to PDF with full CSS, JavaScript, and images
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("Website rendered to PDF successfully");
    }
}

RawPrint web sayfalarını işleyemez - sadece baytları kuyruğa gönderir. HTML'i indirip geçirmek, yazıcının kaynak metni yazdırmasıyla sonuçlanır, işlenmiş içerikle değil. IronPDF'in RenderUrlAsPdf() CSS, JavaScript ve görsellerle tam sayfa render eder. Daha fazla bilgiyi kılavuzlarımızda öğrenin.

Örnek 3: Belge Biçimlendirme

Önce (RawPrint):

// NuGet: Install-Package RawPrint
using System;
using System.IO;
using System.Text;
using RawPrint;

class Program
{
    static void Main()
    {
        //RawPrinthas no concept of fonts, margins, or layout — formatting must be
        // expressed in the printer's own command language (PCL, PostScript, ESC/POS, ZPL).
        // Example: a tiny PCL5 stream that selects portrait and a 16.66cpi font.
        string pclCommands = "\x1B&l0O\x1B(s0p16.66h8.5v0s0b3T";
        string text = "Plain text document - formatting must be expressed in printer command language";
        byte[] data = Encoding.ASCII.GetBytes(pclCommands + text);

        IPrinter printer = new Printer();
        using (var stream = new MemoryStream(data))
        {
            printer.PrintRawStream("HP LaserJet", stream, "Raw Document", false);
        }
    }
}
C#

Sonrası (IronPDF):

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

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        string html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial; margin: 40px; }
                    h1 { color: #2c3e50; font-size: 24px; }
                    p { line-height: 1.6; color: #34495e; }
                    .highlight { background-color: yellow; font-weight: bold; }
                </style>
            </head>
            <body>
                <h1>Formatted Document</h1>
                <p>This is a <span class='highlight'>beautifully formatted</span> document with CSS styling.</p>
                <p>Complex layouts, fonts, colors, and images are fully supported.</p>
            </body>
            </html>";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("formatted.pdf");
        Console.WriteLine("Formatted PDF created successfully");
    }
}
C#

RawPrint ile, düz baytların ötesinde biçimlendirme, "\x1B&l0O\x1B(s0p16.66h8.5v0s0b3T" gibi yazıcı komut dizilerini elle yazmak ve hedef yazıcının PCL veya PostScript lehçesini bilmek anlamına gelir.IronPDF standart HTML ve CSS kullanır — karmaşık yerleşimler, yazı tipleri, renkler ve resimler yazıcıya özgü bilgiye gerek kalmadan tamamen desteklenir.


Özellik Karşılaştırması Özeti

ÖzellikRawPrintIronPDF
PDF Oluşturma
HTML'den PDF'yeHayırEvet
URL'yi PDF'ye çevirHayırEvet
Sıfırdan OluşturHayırEvet
PDF Manipülasyonu
PDF'leri birleştirHayırEvet
PDF AyırmaHayırEvet
Filigran EkleHayırEvet
Mevcut DüzenleHayırEvet
Baskı
Ham baytları kuyruğa gönderEvetHayır
ESC/POS, ZPL, ham PCLEvetHayır
OS yazdırma sistemi ile yazdırHayırEvet
Platform
WindowsEvetEvet
LinuxHayırEvet
macOSHayırEvet
DockerHayırEvet
Diğer
Şifreleme / GüvenlikHayırEvet
Dijital İmzalarHayırEvet
PDF/AHayırEvet

Geçiş Sonrası Yeni Özellikler

IronPDF'e geçtikten sonra RawPrint'in sağlayamayacağı yetenekleri elde edersiniz:

PDF Birleştirme

var pdfs = pdfFiles.Select(f => PdfDocument.FromFile(f)).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("complete.pdf");

Ayarlarla Yazdırma

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

pdf.Print(new PrintOptions
{
    PrinterName = "HP LaserJet",
    NumberOfCopies = 2,
    DPI = 300,
    GrayScale = false
});

Tek İş Akışında Oluştur ve Yazdır

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
    <h1>Invoice #12345</h1>
    <p>Customer: John Doe</p>
    <p>Amount: $150.00</p>
");

// Print directly
pdf.Print("HP LaserJet");

// Or save first
pdf.SaveAs("invoice.pdf");

Geçiş Kontrol Listesi

Öncesi-Geçiş

  • TümRawPrintkullanımlarını belirleyin (PrintRawFile, PrintRawStream)
  • Her çağrı sitesini sınıflandırın: ofis yazıcılarına giden PDF'ler IronPDF için adaydır; ESC/POS, ZPL, EPL veya elle yapılmış PCL/PostScript baytları RawPrint'te kalmalıdır
  • Uygulamanızda kullanılan yazıcı adlarını belgeleyin — IronPDF, OS yazdırma sistemi üzerinden yazdırır, bu nedenle adlar çözülmelidir
  • Konsolide edilebilecek harici PDF oluşturma kodunu not edin
  • ironpdf.com adresinden IronPDF lisans anahtarını edinin

Kod Güncellemeleri

-IronPDF paketini kurun: dotnet add package IronPdf -RawPrintancak hiç kalan ham bayt kanalı olmadığında kaldırılmalıdır: dotnet remove package RawPrint

  • create-then-RawPrint boru hatlarını ChromePdfRenderer ve pdf.Print() ile değiştirin
  • PDF oluşturma ve yazdırmayı Windows'da tek bir iş akışında birleştirin
  • Uygulama başlangıcında lisans başlatma ekle

Test Etme

  • Hedef yazıcılara yazdırmayı test edin
  • Baskı kalitesini doğrulayın
  • Birden çok kopyayı test edin
  • Sessiz yazdırmayı test edin
  • Gerekirse çapraz platform doğrulaması yapın

Lütfen dikkate alın: RawPrint, ilgili sahibinin tescilli markasıdır. Bu site,RawPrintile ilişkili, onaylı veya sponsorlu değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.
Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez