เอกสาร XPS และ OXPS จะกำหนดเค้าโครง ลักษณะที่ปรากฏ และข้อมูลการพิมพ์ เอกสารเหล่านี้คล้ายกับไฟล์ PDF เนื่องจากรูปแบบ PDF ได้รับความนิยมอย่างสูง คุณอาจพบว่าตัวเองอยู่ในสถานการณ์ที่ต้องแปลงเอกสาร XPS และ OXPS เป็นรูปแบบ PDF ด้วยเหตุนี้ บทความนี้จะสอนวิธีแปลงเอกสาร XPS และ OXPS เป็นรูปแบบ PDF โดยใช้ C++
- C ++ API สำหรับการแปลงเอกสาร XPS และ OXPS เป็นรูปแบบ PDF
- แปลงเอกสาร XPS/OXPS เป็นรูปแบบ PDF
- แปลงหน้าที่เลือกของเอกสาร XPS/OXPS เป็นรูปแบบ PDF
C ++ API สำหรับการแปลงเอกสาร XPS และ OXPS เป็นรูปแบบ PDF
Aspose.Page for C++ คือไลบรารี C++ สำหรับแสดงผลและจัดการไฟล์ XPS และ PostScript ช่วยให้คุณสร้าง อ่าน และอัปเดตเอกสาร XPS นอกจากนี้ API ยังรองรับการแปลงเอกสาร XPS และ OXPS เป็นรูปแบบ PDF คุณสามารถติดตั้ง API ผ่าน NuGet หรือดาวน์โหลดโดยตรงจากส่วน ดาวน์โหลด
PM> Install-Package Aspose.Page.Cpp
แปลงเอกสาร XPS/OXPS เป็นรูปแบบ PDF
ต่อไปนี้เป็นขั้นตอนในการแปลงเอกสาร XPS และ OXPS เป็นรูปแบบ PDF
- เริ่มต้นสตรีมด้วยไฟล์ PDF ที่ส่งออก
- เริ่มต้นสตรีมด้วยไฟล์ XPS/OXPS ต้นทาง
- สร้างอินสแตนซ์ของคลาส XpsDocument โดยใช้สตรีม XPS/OXPS
- สร้างอินสแตนซ์ของคลาส PdfSaveOptions
- ระบุตัวเลือก เช่น JpegQualityLevel และ ImageCompression
- บันทึกไฟล์ PDF เอาต์พุตโดยใช้ XpsDocument->Save(System::SharedPtr อุปกรณ์, ระบบ::SharedPtr ตัวเลือก) วิธีการ
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการแปลงเอกสาร XPS/OXPS เป็นรูปแบบ PDF โดยใช้ C++
// ไฟล์เอาต์พุต
System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(u"OutputDirectory\\XPStoPDF.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// การล้างทรัพยากรภายใต้คำสั่ง 'ใช้'
System::Details::DisposeGuard<1> __dispose_guard_1({ pdfStream });
// ------------------------------------------
try {
// ไฟล์ต้นฉบับ
System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(u"SourceDirectory\\sample.xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// การล้างทรัพยากรภายใต้คำสั่ง 'ใช้'
System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream });
// ------------------------------------------
try
{
// โหลดเอกสาร XPS จากสตรีม
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
// หรือโหลดเอกสาร XPS โดยตรงจากไฟล์ ไม่จำเป็นต้องใช้ xpsStream
// เอกสาร XpsDocument = XpsDocument ใหม่ (inputFileName, XpsLoadOptions ใหม่ ());
// เริ่มต้นวัตถุ PdfSaveOptions ด้วยพารามิเตอร์ที่จำเป็น
System::SharedPtr<Aspose::Page::XPS::Presentation::Pdf::PdfSaveOptions> options = [&] {
auto tmp_0 = System::MakeObject<Aspose::Page::XPS::Presentation::Pdf::PdfSaveOptions>();
tmp_0->set_JpegQualityLevel(100);
tmp_0->set_ImageCompression(Aspose::Page::XPS::Presentation::Pdf::PdfImageCompression::Jpeg);
tmp_0->set_TextCompression(Aspose::Page::XPS::Presentation::Pdf::PdfTextCompression::Flate);
return tmp_0;
}();
// สร้างอุปกรณ์แสดงผลสำหรับรูปแบบ PDF
System::SharedPtr<Aspose::Page::XPS::Presentation::Pdf::PdfDevice> device = System::MakeObject<Aspose::Page::XPS::Presentation::Pdf::PdfDevice>(pdfStream);
// บันทึกไฟล์ PDF
document->Save(device, options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch (...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
แปลงหน้าที่เลือกของเอกสาร XPS/OXPS เป็นรูปแบบ PDF
ขณะแปลงไฟล์ XPS และ OXPS เป็นรูปแบบ PDF คุณยังสามารถระบุหน้าที่คุณต้องการแปลงได้อีกด้วย ไฟล์ PDF ที่ส่งออกจะมีเฉพาะหน้าที่คุณเลือกเท่านั้น เพื่อให้บรรลุเป้าหมายนี้ โปรดปฏิบัติตามขั้นตอนด้านล่าง
- เริ่มต้นสตรีมด้วยไฟล์ PDF ที่ส่งออก
- เริ่มต้นสตรีมด้วยไฟล์ XPS/OXPS ต้นทาง
- สร้างอินสแตนซ์ของคลาส XpsDocument โดยใช้สตรีม XPS/OXPS
- สร้างอินสแตนซ์ของคลาส PdfSaveOptions
- ระบุตัวเลือก เช่น JpegQualityLevel และ ImageCompression
- ระบุหน้าที่คุณต้องการแปลงโดยใช้ PdfSaveOptions->setPageNumbers(System::ArrayPtr ค่า) วิธีการ
- บันทึกไฟล์ PDF เอาต์พุตโดยใช้ XpsDocument->Save(System::SharedPtr อุปกรณ์, ระบบ::SharedPtr ตัวเลือก) วิธีการ
โค้ดตัวอย่างต่อไปนี้สาธิตวิธีแปลงหน้าที่เลือกของเอกสาร XPS และ OXPS เป็นรูปแบบ PDF โดยใช้ C++
// ไฟล์เอาต์พุต
System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(u"OutputDirectory\\XPStoPDF.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// การล้างทรัพยากรภายใต้คำสั่ง 'ใช้'
System::Details::DisposeGuard<1> __dispose_guard_1({ pdfStream });
// ------------------------------------------
try {
// ไฟล์ต้นฉบับ
System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(u"SourceDirectory\\sample.xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// การล้างทรัพยากรภายใต้คำสั่ง 'ใช้'
System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream });
// ------------------------------------------
try
{
// โหลดเอกสาร XPS จากสตรีม
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
// หรือโหลดเอกสาร XPS โดยตรงจากไฟล์ ไม่จำเป็นต้องใช้ xpsStream
// เอกสาร XpsDocument = XpsDocument ใหม่ (inputFileName, XpsLoadOptions ใหม่ ());
// เริ่มต้นวัตถุ PdfSaveOptions ด้วยพารามิเตอร์ที่จำเป็น
System::SharedPtr<Aspose::Page::XPS::Presentation::Pdf::PdfSaveOptions> options = [&] {
auto tmp_0 = System::MakeObject<Aspose::Page::XPS::Presentation::Pdf::PdfSaveOptions>();
tmp_0->set_JpegQualityLevel(100);
tmp_0->set_ImageCompression(Aspose::Page::XPS::Presentation::Pdf::PdfImageCompression::Jpeg);
tmp_0->set_TextCompression(Aspose::Page::XPS::Presentation::Pdf::PdfTextCompression::Flate);
tmp_0->set_PageNumbers(System::MakeArray<int32_t>({ 1, 3 }));
return tmp_0;
}();
// สร้างอุปกรณ์แสดงผลสำหรับรูปแบบ PDF
System::SharedPtr<Aspose::Page::XPS::Presentation::Pdf::PdfDevice> device = System::MakeObject<Aspose::Page::XPS::Presentation::Pdf::PdfDevice>(pdfStream);
// บันทึกไฟล์ PDF
document->Save(device, options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch (...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
รับใบอนุญาตฟรี
คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีแปลงเอกสาร XPS และ OXPS เป็นรูปแบบ PDF โดยใช้ C++ นอกจากนี้ คุณได้เห็นวิธีแปลงหน้าที่เลือกของเอกสาร XPS/OXPS เป็นรูปแบบ PDF โดยใช้ Aspose.Page for C++ API API มีคุณสมบัติเพิ่มเติมมากมายสำหรับการทำงานกับเอกสาร XPS ซึ่งคุณสามารถสำรวจโดยละเอียดได้โดยไปที่ เอกสารอย่างเป็นทางการ ในกรณีที่มีคำถามใดๆ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี