Aspose.pdf for c++ 请问怎样在生成的pdf 中插入图片

aspose.pdf for c++ 请问怎样在生成的pdf 中插入图片

我用以下代码生成文字的pdf 成功, 请问怎样插入已有的图片?

void CAsposeCtrl::Example1()
{

auto doc = MakeObject<Document>();
//System::SharedPtrimageStamp = MakeObject(u"SourceDirectory\\aspose.png");
auto pages = doc->get_Pages();
pages->Add();
//Numeration of Pages starts from 1
auto page = pages->idx_get(1);
auto paragraps = page->get_Paragraphs();

paragraps->Add(MakeObject<TextFragment>(u"Hello World!"));

auto stream = MakeObject<IO::MemoryStream>();
SharedPtr<Bitmap> bitmap = MakeObject<Bitmap>(200, 200);

// 这里不知道怎么写能把图片加进去了
bitmap->FromFile(u"C:\Users\孙啸\Documents\tu.jpeg");
SharedPtr graphics = Graphics::FromImage(bitmap);
//graphics->Clear(System::Drawing::Color::get_Yellow());
//graphics->FillRectangle(Brushes::get_Blue(), System::Drawing::Rectangle(0, 0, 200, 100));
bitmap->Save(stream, Imaging::ImageFormat::get_Bmp());

double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rect = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);

stream->Seek(0, System::IO::SeekOrigin::Begin);
page->AddImage(stream, rect);


auto text = MakeObject<TextFragment>(u"This example is created by Aspose.Pdf for C++.");
auto ts = text->get_TextState();

ts->set_FontSize(16);
ts->set_FontStyle(FontStyles::Italic);
paragraps->Add(text);

doc->Save(u"C:\\Users\\孙啸\\Documents\\Example1.pdf");

}

@mxudong

你能解释一下你面临什么类型的问题吗?您使用的代码似乎是正确的。它引发了一些例外吗?请与我们分享包含错误详细信息的示例图片和 PDF,以便我们进一步为您提供帮助。

我有一张外部的图片,现在生成一个新pdf,
如何把文件载入并加入到pdf的功能我不会写,请您帮我实现一下:

void CAsposeCtrl::Example1()
{
//创建文档
auto doc = MakeObject();
//创建一个页
auto pages = doc->get_Pages();
pages->Add();
//得到文档的第一页
auto page = pages->idx_get(1);

//把一个图片加载到内存中
//我希望能够载入一张图片,并把它加入到pdf的第一页, 但是不知道怎么做, 请您帮我实现一下
auto stream = MakeObject<IO::MemoryStream>();
SharedPtr<Bitmap> bitmap = MakeObject<Bitmap>(200, 200);
bitmap->FromFile(u"\\Users\\Documents\\tu.jpeg");
SharedPtr<Graphics> graphics = Graphics::FromImage(bitmap);
graphics->DrawImage(bitmap, 0,100);

//下面保存的pdf里面出错
doc->Save(u"\\Users\\孙啸\\Documents\\Document_out1.pdf");

}

我希望您能提供一个 pdf中插入 外部图片的例子.
请注意 :warning:是一个已经存在的外部的图片的例子 :warning:, 不是画一个带颜色的矩形的例子.

@mxudong

我们正在为您准备一个示例,并将很快与您分享。

谢谢您! 期待您的分享.

@mxudong

您能否尝试使用以下代码片段在 PDF 中添加外部图像,如果您仍然遇到任何问题,请告诉我们:

// Load the PDF file
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");

// Retrieve the first page
auto page = pdfDocument->get_Pages()->idx_get(1);

// Create an instance of the Rectangle class
double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rectangle = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);

// Add image to the page
page->AddImage(u"SourceDirectory\\Images\\AsposeLogo.png", rectangle);

// Save the PDF file
pdfDocument->Save(u"OutputDirectory\\add_image_output.pdf");

@mxudong

请注意,在最后一个版本中,您可以使用字符串字面量 “”,而不是像以前那样使用 u""

谢谢您的指导,你给的例子调通了, 我还有一个问题,

page->AddImage(u"SourceDirectory\Images\AsposeLogo.png", rectangle);
AddImage 的参数类型是 System::String
可是我能得到的图片是 const char * 类型的,
请问我怎么把 const char * 类型的图片地址转化成 函数需要的 System::String 类型?

@mxudong

您可以使用不同的 C++ 方法将 Char 值转换为 String。例如,请查看以下链接,其中给出了不同的方法。您可以根据需要使用一个:

https://www.techiedelight.com/convert-char-to-string-cpp/