Aspose.pdf For.NET支持转换指定的几页吗?


#1

pdf转word,需要根据页码来转换,比如只转换指定的几页,aspose.pdf For.NET支持吗?


#2

@zg0x1231

感谢您与支持人员联系。

请尝试在您的环境中使用以下代码段,然后与我们分享您的反馈意见。 它会创建一个包含特定页面的单独文档,并将其另存为word文档。

Document sourceDocument = new Document(dataDir + "Source.pdf");
Document pageDocument = new Document();
int[] pages = { 2,3,5 };
foreach (Page page in sourceDocument.Pages)
{
    foreach (int match in pages)
    {
        if (page.Number == match)
        {
            pageDocument.Pages.Add(page);
        }
    }
}
pageDocument.Save(dataDir + "Pages_19.8.docx" , SaveFormat.DocX);

#3

非常感谢你的答复,你的代码对我非常有用,我已经实现了需要的功能;

另外我这边遇到了转换过程中排版的问题,我把问题和示例文件整理在zip里,麻烦您帮我看一下
pdf转word排版问题反馈.zip (3.1 MB)

谢谢!


#4

@zg0x1231

感谢您的反馈。

使用MS Word 2016查看DOC和DOCX文件时,我们无法注意到该问题。请参阅附带的屏幕截图,其中生成的文件中不存在对齐或图像问题。

AlignmentOK.jpg
ImageOK.jpg


#5

我这边又遇到了PDF转WORD的问题,示例文件、代码、问题描述都在zip包里,麻烦您帮我看一下,非常感谢。


#6

@zg0x1231

我们尝试使用Aspose.PDF for .NET 19.9转换三个页面并注意到更好的结果。 有些字体不同,因为我的电脑没有安装。 我们在这里附加了生成的文件。 您能否验证您是否使用最新版本的API。 Flow_Pages_19.9.zip


#7

又发现了两个问题


#8

@zg0x1231

我们已经注意到这两个问题。 将附加的PDF转换为DOCX时格式化问题和OutOfMemoryException。

  • PDFNET-46954: 将PDF转换为DOCX时格式化问题
  • PDFNET-46955: PDF到DOCX期间的OutOfMemoryException

一旦有任何更新,我们会通知您。


#9

我只看到PDF转word有进度回调。
pdf转其他格式(excel、ppt、html)都没有找到进度回调,不知道有没有帮助文档参考


#10

@zg0x1231

您可以使用进度处理程序将PDF转换为HTML,如下所示:

Document doc = new Document(dataDir + "input.pdf");
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.CustomProgressHandler = new HtmlSaveOptions.ConversionProgressEventHandler(ShowProgressOnConsole);
saveOptions.SplitIntoPages = false;
doc.Save(dataDir + "ProgressDetails_out_.html", saveOptions);
Console.ReadLine();

public static void ShowProgressOnConsole(HtmlSaveOptions.ProgressEventHandlerInfo eventInfo)
{
    switch (eventInfo.EventType)
    {
        case ProgressEventType.TotalProgress:
            Console.WriteLine(String.Format("{0}  - Conversion progress : {1}% .", DateTime.Now.TimeOfDay, eventInfo.Value.ToString()));
            break;
        case ProgressEventType.SourcePageAnalized:
            Console.WriteLine(String.Format("{0}  - Source page {1} of {2} analyzed.", DateTime.Now.TimeOfDay, eventInfo.Value.ToString(), eventInfo.MaxValue.ToString()));
            break;
        case ProgressEventType.ResultPageCreated:
            Console.WriteLine(String.Format("{0}  - Result page's {1} of {2} layout created.", DateTime.Now.TimeOfDay, eventInfo.Value.ToString(), eventInfo.MaxValue.ToString()));
            break;
        case ProgressEventType.ResultPageSaved:
            Console.WriteLine(String.Format("{0}  - Result page {1} of {2} exported.", DateTime.Now.TimeOfDay, eventInfo.Value.ToString(), eventInfo.MaxValue.ToString()));
            break;
        default:
            break;
    }
}

但CustomProgressHandler的功能目前不适用于PDF到XLS和PDF到PPT的转换。 但是,为了实现所需功能,我们在问题跟踪系统中记录了以下功能请求。

  • PDFNET-46648 - PDF到XLS - 实现CustomProgressHandler
  • PDFNET-46649 - PDF到PPT - 实现CustomProgressHandler

split this topic #11

A post was split to a new topic: PDF到DOCX期间的空白页