เพิ่มรูปภาพลงในเอกสาร PDF ผ่าน C++

แทรกรูปภาพลงในเอกสาร PDF โดยใช้ Aspose.PDF สำหรับไลบรารี C++

เพิ่มรูปภาพลงในเอกสาร PDF โดยใช้ห้องสมุด C++

เพื่อที่จะเพิ่มภาพในรูปแบบไฟล์ PDF เราจะใช้ Aspose.PDF for C++ API ซึ่งเป็นคุณลักษณะที่อุดมไปด้วยที่มีประสิทธิภาพและง่ายต่อการใช้ API การจัดการเอกสาร cpp แพลตฟอร์มเปิดตัวจัดการแพคเกจ NuGet ค้นหาaspose.pdf และติดตั้งนอกจากนี้คุณยังอาจใช้คำสั่งต่อไปนี้จากคอนโซลการจัดการแพคเกจ

Package Manager Console

PM > Install-Package Aspose.PDF.Cpp

เพิ่มรูปภาพไปยัง PDF โดยใช้ C++


คุณจำเป็นต้อง Aspose.PDF for C++ เพื่อลองรหัสในสภาพแวดล้อมของคุณ

1.สร้างวัตถุเอกสารและเปิดการป้อนข้อมูลเอกสาร PDF 1.รับหน้าเว็บที่คุณต้องการเพิ่มภาพ 1.เพิ่มภาพลงในคอลเลกชันทรัพยากรของหน้าเว็บ 1.ใช้ตัวดำเนินการ GSave เพื่อบันทึกสถานะกราฟิกปัจจุบัน 1.ใช้ผู้ประกอบการ ConcatenateMatrix เพื่อระบุตำแหน่งที่ภาพจะถูกวางไว้ 1.ใช้ตัวดำเนินการ Do เพื่อวาดภาพบนหน้าเว็บ 1.ใช้ผู้ประกอบการ GreStore เพื่อบันทึกรัฐกราฟิกปรับปรุง 1.บันทึกไฟล์ PDF

เพิ่มรูปภาพลงในเอกสาร PDF - C++

รหัสตัวอย่างนี้แสดงวิธีการเพิ่มรูปภาพลงในหน้า PDF - C++


    String _dataDir("C:\\Samples\\");

    auto document = MakeObject<Document>(_dataDir + u"AddImage.pdf");

    int lowerLeftX = 50;
    int lowerLeftY = 750;
    int upperRightX = 100;
    int upperRightY = 800;

    auto page = document->get_Pages()->idx_get(1);
    auto imageStream = System::IO::File::OpenRead(_dataDir + u"logo.png");

    page->get_Resources()->get_Images()->Add(imageStream);

    page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::GSave>());

    auto rectangle = MakeObject<Rectangle>(lowerLeftX, lowerLeftY, upperRightX, upperRightY);

    auto matrix = MakeObject<Matrix>(
        MakeArray<double>({
            rectangle->get_URX() - rectangle->get_LLX(),
            0,                  0,
            rectangle->get_URY() - rectangle->get_LLY(),
            rectangle->get_LLX(), rectangle->get_LLY() }));

    page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::ConcatenateMatrix>(matrix));
    auto ximage = page->get_Resources()->get_Images()->idx_get(page->get_Resources()->get_Images()->get_Count());

    page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::Do>(ximage->get_Name()));

    page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::GRestore>());

    document->Save(_dataDir + u"updated_document.pdf");

    imageStream->Close();