同一份文件在windows 和 Linux系统下采用的都是本地离线正版授权服务 对文档的跨页表格拆分效果不一致, 如图东南亚新加坡本属于一个表格行内的内容 被拆分成在两个不同的行 同时多出一个空白表格行 使用同样的sdk 因为系统不一样 导致拆分结果不一致 我们期望的效果如图中左图的小红框 请问这一块可能是有哪些因素导致的 能否提供下技术支持 谢谢~
@liuyichen 您这边出现的问题很可能是因为您的环境中没有构建文档布局所需的字体。 为了构建准确的文档布局,需要字体。 如果 Aspose.Words 找不到文档中使用的字体,则字体被替换。 由于字体规格的差异,这可能会导致文档布局差异。
请参阅我们的文档以了解 Aspose.Words 在何处查找字体:
https://docs.aspose.com/words/python-net/specifying-truetype-fonts-location/
如果提供字体后问题仍然存在,请在此处附上您的输入和输出文档进行测试。
@alexey.noskov 您好 针对您给的建议我们有在linux系统增加DFKai-SB字体 但是在linux系统上依然将表格中的内容拆分 现提供源文档给您 烦请帮忙测试定位一下原因
CF3-AB台灣區境外出差管理辦法20180117.docx (57.9 KB)
@alexey.noskov 您好 这是我们的输出文档 问题页在第二、第三
313a7fed-16de-47c7-b359-4754621a4ad6_page1.docx (80.4 KB)
313a7fed-16de-47c7-b359-4754621a4ad6_page2.docx (81.2 KB)
313a7fed-16de-47c7-b359-4754621a4ad6_page3.docx (80.3 KB)
@liuyichen 不幸的是,我仍然无法在我这边重现这个问题。 如果我正确理解您的情况,您可以使用 Aspose.Words 将文档拆分为多个页面。 我使用以下简单代码测试了该场景:
doc = aw.Document("C:\\Temp\\in.docx")
# save each page as DOCX
for pageIndex in range(0, doc.page_count):
doc.extract_pages(pageIndex, 1).save("C:\\Temp\\page_" + str(pageIndex) + ".docx")
结果是正确的。
@alexey.noskov 您好 这个文档的拆分在window系统上是可以正常的 但是当服务部署到linux服务器上的时候拆分页码涉及到表格的时候就会出现问题 您可以将服务部署到centos7系统的服务器上看能否复现这个问题
@liuyichen 我在Centos7上测试了该场景,如果提供所需的字体,结果与Windows上的结果相同。 这是用于测试的 Dockerfile 和代码:
FROM centos/python-38-centos7
USER root
# Install ICU package.
RUN yum -y install icu
WORKDIR /usr/app/src
# Copy function code
COPY app.py ./
RUN pip install aspose-words
ENTRYPOINT [ "python3", "app.py"]
import aspose.words as aw
lic = aw.License()
lic.set_license("/temp/Aspose.Total.Python.NET.lic")
doc = aw.Document("/temp/in.docx")
# set fonts folder
doc.font_settings = aw.fonts.FontSettings()
doc.font_settings.set_fonts_folder("/temp/fonts", True)
# save each page as DOCX
for pageIndex in range(0, doc.page_count):
doc.extract_pages(pageIndex, 1).save("/temp/page_" + str(pageIndex) + ".docx")
/temp/fonts
包含以下字体:
- DFKai-SB
- SimSun
- Times New Roman
@alexey.noskov 感谢您提供的字体包,我们使用您提供的字体包进行的测试,发现原先的涉及东南亚行的数据已经修复,但是中国大陆中的海南杭州又移动到了下一行导致下一页多出了一行空白行,麻烦能否帮忙再看一下这个问题,拆分效果如下图所
@liuyichen 请尝试在文档加载选项中指定默认编辑语言。 MS Word 和 Aspose.Words 根据编辑语言使用不同的布局算法。
opt = aw.loading.LoadOptions()
opt.language_preferences.default_editing_language = aw.loading.EditingLanguage.CHINESE_PRC
doc = aw.Document("/temp/in.docx", opt)
# set fonts folder
doc.font_settings = aw.fonts.FontSettings()
doc.font_settings.set_fonts_folder("/temp/fonts", True)
# save each page as DOCX
for pageIndex in range(0, doc.page_count):
doc.extract_pages(pageIndex, 1).save("/temp/page_" + str(pageIndex) + ".docx")