版本:23.8
编程语言:java
有一些word文件本身很小 , 因为都是文字,所以页数很多, 导致转换宕机
是否有方法能在转换前进行校验,来拦截这种文件,避免服务宕机
版本:23.8
编程语言:java
有一些word文件本身很小 , 因为都是文字,所以页数很多, 导致转换宕机
是否有方法能在转换前进行校验,来拦截这种文件,避免服务宕机
@ZhonghaoSun 请您在此处附上有问题的输入文档以供测试,我们会检查该问题并向您提供更多信息。
在将 MS Word 文档转换为 PDF 等固定页面格式时,最消耗内存和 CPU 的操作是页面布局。在 Aspose.Words 中,您可以使用 IPageLayoutCallback 来在达到某个限制后跳过后续页面的布局。例如,以下代码仅构建前两页的布局:
int pagesToRender = 2;
Document doc = new Document("C:\\Temp\\in.docx");
doc.getLayoutOptions().setCallback(new PageLayoutCallback(pagesToRender));
try
{
doc.updatePageLayout();
}
catch (PageLimitReachedException ex)
{
PdfSaveOptions opt = new PdfSaveOptions();
opt.setPageSet(new PageSet(new PageRange(0, pagesToRender - 1)));
doc.save("C:\\Temp\\out.pdf", opt);
}
private static class PageLayoutCallback implements IPageLayoutCallback
{
public PageLayoutCallback(int maxPageCount)
{
mMaxPageCount = maxPageCount;
}
@Override
public void notify(PageLayoutCallbackArgs args) throws Exception
{
if (args.getEvent() == PageLayoutEvent.PART_REFLOW_STARTED &&
args.getPageIndex() >= mMaxPageCount)
throw new PageLimitReachedException();
}
private int mMaxPageCount;
}
private static class PageLimitReachedException extends Exception { }