Pliki XPS i OXPS są często używane do drukowania ze względu na ich niezależność od rozdzielczości. Czasami jednak musimy przekonwertować XPS na PDF lub OXPS na PDF. Aspose.Page for .NET API umożliwia wykonywanie tych konwersji z wysoką wiernością i szybkim renderowaniem. Przyjrzyjmy się następującym przypadkom użycia:

Konwertuj XPS na PDF programowo za pomocą C#

Konwersja XPS do PDF jest prosta dzięki Aspose.Page for .NET API. Będziemy uczyć się następujących podejść do konwersji plików XPS:

i) Konwertuj określone strony XPS na PDF w C#

Aby przekonwertować wybrane strony dokumentu XPS do formatu PDF, wykonaj następujące czynności:

  1. Zainicjuj strumień wejściowy XPS
  2. Załaduj dokument XPS ze strumienia
  3. Zainicjuj obiekt PdfSaveOptions.
  4. Określ numery stron do konwersji
  5. Zapisz dokument jako plik PDF

Poniższy fragment kodu wykonuje następujące kroki i pokazuje, jak przekonwertować XPS na PDF za pomocą C#:

// Zainicjuj strumień wyjściowy PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Zainicjuj strumień wejściowy XPS
//używając (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.xps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.xps", System.IO.FileMode.Open))
{
    // Załaduj dokument XPS ze strumienia
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // lub załaduj dokument XPS bezpośrednio z pliku. Wtedy nie jest potrzebny xpsStream.
    // Dokument XpsDocument = nowy XpsDocument(inputFileName, nowy XpsLoadOptions());

    // Zainicjuj obiekt opcji z niezbędnymi parametrami.
    Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
    {
        JpegQualityLevel = 100,
        ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
        TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
        PageNumbers = new int[] {1, 3}
    };
    // Utwórz urządzenie renderujące dla formatu PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

Ten fragment kodu wykorzystuje dokument XPS zawierający kilka stron jako plik wejściowy. Natomiast tylko numery stron 1 i 3 są konwertowane do formatu PDF, jak określono we fragmencie kodu. Poniższy zrzut ekranu pokazuje 2 strony wyrenderowane do dokumentu PDF:

XPS do PDF

ii) Konwertuj wszystkie strony XPS na PDF w C#

Możesz przekonwertować cały plik XPS na format PDF. Wykonaj poniższe czynności, a wszystkie strony pliku XPS zostaną przekonwertowane na plik PDF:

  1. Załaduj wejściowy plik XPS
  2. Zainicjuj obiekt opcji z niezbędnymi parametrami
  3. Utwórz instancję PdfDevice do renderowania
  4. Eksportuj XPS do dokumentu PDF

Poniższy fragment kodu opiera się na wszystkich tych krokach, które pokazują, jak przekonwertować plik XPS do formatu PDF przy użyciu języka C#:

// Zainicjuj strumień wyjściowy PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "XPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Zainicjuj strumień wejściowy XPS
//używając (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.xps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.xps", System.IO.FileMode.Open))
{
// Załaduj dokument XPS ze strumienia
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// lub załaduj dokument XPS bezpośrednio z pliku. Wtedy nie jest potrzebny xpsStream.
// Dokument XpsDocument = nowy XpsDocument(inputFileName, nowy XpsLoadOptions());

// Zainicjuj obiekt opcji z niezbędnymi parametrami.
Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
{
    JpegQualityLevel = 100,
    ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
    TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
};
// Utwórz urządzenie renderujące dla formatu PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Konwertuj OXPS na PDF za pomocą C#

Format OXPS to zaktualizowana i zaawansowana forma formatu plików XPS. Jednak takie pliki nie są obsługiwane przez niektóre stare systemy operacyjne. Aspose.Page for .NET API może również konwertować pliki OXPS. Przejdźmy do poznania następujących scenariuszy użycia:

i) Konwertuj niektóre strony OXPS na PDF w C#

Plik OXPS może zawierać wiele stron, a dowolną liczbę stron można przekonwertować na format PDF, wykonując poniższe czynności:

  1. Załaduj plik OXPS
  2. Zadeklaruj obiekt PdfSaveOptions.
  3. Ustaw numery stron, które chcesz przekonwertować
  4. Renderuj OXPS do formatu PDF

Poniższy fragment kodu pokazuje, jak przekonwertować OXPS na PDF przy użyciu języka C#. Konwertuje pierwszą stronę pliku OXPS na format PDF, jak wspomniano we fragmencie kodu.

// Zainicjuj strumień wyjściowy PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Zainicjuj strumień wejściowy OXPS
//używając (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.oxps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.oxps", System.IO.FileMode.Open))
{
    // Załaduj dokument OXPS ze strumienia
    Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
    // lub załaduj dokument XPS bezpośrednio z pliku. Wtedy nie jest potrzebny xpsStream.
    // Dokument XpsDocument = nowy XpsDocument(inputFileName, nowy XpsLoadOptions());

    // Zainicjuj obiekt opcji z niezbędnymi parametrami.
    Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
    {
        JpegQualityLevel = 100,
        ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
        TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
        PageNumbers = new int[] {1}
    };
    // Utwórz urządzenie renderujące dla formatu PDF
    Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

    document.Save(device, options);
}

ii) Konwertuj wszystkie strony OXPS na PDF w C#

Konwersja wszystkich stron OXPS jest prosta i związana z przykładem, który omówiliśmy powyżej. Wykonajmy poniższe kroki i przekonwertujmy wszystkie strony pliku OXPS do jednego dokumentu PDF:

  1. Zainicjuj strumień wejściowy OXPS
  2. Załaduj plik OXPS ze strumienia
  3. Utwórz instancję obiektu klasy PdfSaveOptions.
  4. Eksportuj OXPS do pliku PDF

Poniższy fragment kodu wykonuje następujące kroki jeden po drugim i konwertuje OXPS na PDF za pomocą C#:

// Zainicjuj strumień wyjściowy PDF
using (System.IO.Stream pdfStream = System.IO.File.Open(dataDir + "OXPStoPDF.pdf", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write))
// Zainicjuj strumień wejściowy OXPS
//używając (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "input.oxps", System.IO.FileMode.Open))
using (System.IO.Stream xpsStream = System.IO.File.Open(dataDir + "sample.oxps", System.IO.FileMode.Open))
{
// Załaduj dokument OXPS ze strumienia
Aspose.Page.XPS.XpsDocument document = new Aspose.Page.XPS.XpsDocument(xpsStream, new Aspose.Page.XPS.XpsLoadOptions());
// lub załaduj dokument OXPS bezpośrednio z pliku. Wtedy nie jest potrzebny xpsStream.
// XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions());

// Zainicjuj obiekt opcji z niezbędnymi parametrami.
Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions options = new Aspose.Page.XPS.Presentation.Pdf.PdfSaveOptions()
{
    JpegQualityLevel = 100,
    ImageCompression = Aspose.Page.XPS.Presentation.Pdf.PdfImageCompression.Jpeg,
    TextCompression = Aspose.Page.XPS.Presentation.Pdf.PdfTextCompression.Flate,
};
// Utwórz urządzenie renderujące dla formatu PDF
Aspose.Page.XPS.Presentation.Pdf.PdfDevice device = new Aspose.Page.XPS.Presentation.Pdf.PdfDevice(pdfStream);

document.Save(device, options);
}

Wniosek

W tym artykule nauczyłeś się programowo konwertować XPS na PDF i OXPS na PDF za pomocą C#. Dzięki przykładom kodu i zrzutom ekranu w języku C# nauczyłeś się o wysokiej wierności, wydajnej i szybkiej konwersji formatu plików. Możesz dalej eksplorować Aspose.Page for .NET API za pomocą dokumentacji API i referencji API. Ponadto możesz zadawać pytania na bezpłatnych forach pomocy technicznej.

Zobacz też