首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/ GUI导出无效的PDF - iText7无法读取

/ GUI导出无效的PDF - iText7无法读取
EN

Stack Overflow用户
提问于 2022-03-09 00:11:53
回答 1查看 105关注 0票数 0

我正试图通过Google将多个Google文件导出为Pdf格式,并使用iText7将它们合并为一个文件,但是它抛出了异常的 'PDF头找不到‘。是因为谷歌导出的奇怪的PDF格式。

Google磁盘生成的PDF内容(与记事本一起阅读)无效。

文件内容开始时类似于这个倥䙄ㄭ㐮┊ㄊ,而不是像%PDF-1.4这样的东西。

PDF上传的文件可以从Google磁盘读取,没有任何问题,即使我直接将Stream导出到磁盘,它也是可读的。当我通过Google .手动下载文件时,文件内容完全相同。

下面是我通过API导出文件的代码:

代码语言:javascript
复制
var mimeType = "application/pdf";
var file = GetFile(sourceFile);
var pdfRequest = _driveService.Files.Export(sourceFile, mimeType);
var stream = pdfRequest.ExecuteAsStream();

然后我通过API将PDF上传回Google

代码语言:javascript
复制
var newFile = new Google.Apis.Drive.v3.Data.File();
newFile.MimeType = mimeType;
newFile.Parents = new List<string>() { targetFolder };

var createRequest = _driveService.Files.Create(newFile, stream, mimeType);
createRequest.SupportsAllDrives = true;
var createResult = createRequest.Upload();

奇怪的是,当我使用var text = pdfRequest.Execute();而不是pdfRequest.ExecuteAsStream时,导出的PDF格式是可以的(它以%PDF-1.7开头)。但是Execute()返回字符串而不是流。

是否有任何方法从Google获得标准PDF格式或以任何可能的方式转换它?

EN

回答 1

Stack Overflow用户

发布于 2022-03-09 22:54:57

问题在于iText7本身。它认为PDF无效,但它可能只是不支持iso8859_2编码中的PDF。我试着用PDFSharp代替,一切都很顺利。

我使用了Google中的ExecuteAsStream()来获得PDF,没有任何问题,所以它不是错误的。

谢谢你所有的建议。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71402905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档