编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Aspose word 转换为pdf 排版错位和数据丢失

wxchong 2024-07-06 01:08:53 开源技术 17 ℃ 0 评论

简介:

Aspose.Words是一个商业.NET类库,可以使得应用程序处理大量的文件任务。Aspose.Words支持Doc,Docx,RTF,HTML,OpenDocument,PDF,XPS,EPUB和其他格式。使用Aspose.Words可以在不使用Microsoft.Word的情况下生成、修改、转换和打印文档。

排版错位:

在使用中发现apose对word文档转换PDF操作中会出现将单页分成两页的情况。仔细分析后发现是因为word文档在编辑的时候是采用的多页编辑。页面效果是单页,可是在apose将word文档转为pdf后就变成了两页。所以要新生成一个word文档并保留原word文档的样式,问题解决。

try {
    long old = System.currentTimeMillis();
    File file = new File(targetFile);
    FileOutputStream os = new FileOutputStream(file);
    Document doc = new Document(sourcerFile);
    Document document = new Document();//新建一个空白pdf文档
    document.removeAllChildren();
    document.appendDocument(doc, ImportFormatMode.USE_DESTINATION_STYLES);//保留样式
    document.save(os, SaveFormat.PDF);//全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换
    os.close();
    long now = System.currentTimeMillis();
    System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒");  //转化用时
} catch (Exception e) {
    e.printStackTrace();
}

数据丢失:

在使用中发现apose对word文档转换PDF操作中会出现将页签数据丢失的情况。将问题反复重现后发现是因为word文档的样式无法保存。所以要新生成一个word文档并保留原word文档的样式,问题解决。



try {
    long old = System.currentTimeMillis();
    File file = new File(targetFile);
    FileOutputStream os = new FileOutputStream(file);
    Document doc = new Document(sourcerFile);
    Document document = new Document();//新建一个空白pdf文档
    document.removeAllChildren();
    document.appendDocument(doc, ImportFormatMode.USE_DESTINATION_STYLES);//保留样式
    document.save(os, SaveFormat.PDF);//全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换
    os.close();
    long now = System.currentTimeMillis();
    System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒");  //转化用时
} catch (Exception e) {
    e.printStackTrace();
}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表