我是GTK4的新手,这是一个用于C++绑定的开源工具包。我希望使用GTK库( TextView库,gtkmm4)从当前的GTK缓冲区(从保存的文件)发送文本到PDF文件,但是无法打印出任何内容。
这是我从阅读文档开始的代码:
void MainWindow:export_note() {
auto op = Gtk::PrintOperation::create();
// setup op
cout << save_file_path << endl;
string content = editor.get_buffer()->get_text();
ofstream out(work_dir + save_file_path);
out << content;
out.close();
curr_state = edit_file;
op->set_export_filename("test.pdf");
auto res = op->run(Gtk::PrintOperation::Action::EXPORT);
return;
}这只是导出到一个空白的PDF,但我期待文本显示在PDF上。
发布于 2022-12-03 22:50:34
看起来,您没有使用任何二进制应用程序来尝试从文本转换为text/pdf或更常见的二进制应用程序/pdf。不能简单地将文本数据填充到名为Test.pdf的容器中。
有一些简单的方法可以将文本转换为PDF格式,传统上使用PostScript打印机文件,但最近更常见的是直接使用PDF打印机驱动程序。
所以,从最基本的层次开始,Hello需要一个类似于的文件,在这里,主体是由叠加的向量或X&Y协调处的字体标记字符串组成的。
Test.pdf
%PDF-1.1
%âãÏÓ
1 0 obj<</Type/Catalog/Pages 2 0 R>>endobj
2 0 obj<</Type/Pages/Kids [3 0 R]/Count 1/MediaBox [0 0 594 792]>>endobj
3 0 obj<</Type/Page/Parent 2 0 R/Resources<</Font<</F1<</Type/Font/Subtype/Type1/BaseFont/Helvetica>>>>>>/Contents 4 0 R>>endobj
4 0 obj<</Length 81
>>
stream
BT /F1 18 Tf 036 740 Td (Hello) Tj ET
BT /F1 18 Tf 036 720 Td (World!) Tj ET
endstream
endobj xref
0 5
0000000000 65535 f
0000000019 00000 n
0000000063 00000 n
0000000137 00000 n
0000000267 00000 n
trailer<</Root 1 0 R /Size 5>>startxref
399 %%EOFhttps://stackoverflow.com/questions/74670515
复制相似问题