如何在C#中将OpenXML WordprocessingDocument转换为Word Interop的文档

时间:2018-08-31 11:26:32

标签: c# office-interop openxml-sdk

我需要使用客户提供的docx模板生成pdf格式的发票。

当前,我使用DocumentFormat.OpenXml.Packaging的WordprocessingDocument对象,将其另存为docx

// get the slides images
$allSlides = DB::table('homepage_slides')->paginate(10);
// slideOrderSetting is a json, storing the order for slides [{"id":4},{"id":1},{"id":2},{"id":3},{"id":5},{"id":6}]
$slideOrder = json_decode($slideOrderSetting, true); 

// sort the slides
$slides = array();
foreach ($slideOrder as $order){
    foreach ($allSlides as $slide){
        if((int)$order['id'] === (int)$slide->SlideID){
            array_push($slides, $slide);
            break;
        }
    }
}

// get the slide array sorted
return $slides;

,然后使用一些可执行文件将其转换为pdf。我想提高性能,并考虑使用SaveAs2方法将WordprocessingDocument转换为Word Interop的Document,然后将其另存为pdf,但是对于C#而言,我太陌生,无法自己完成它,因此对您有所帮助

我已经检查了一些第三方产品,如Spire.Doc for Net,但发现它们不能像Word Interop那样正确地将docx呈现为pdf(docx模板是页眉,页脚,表和图像的组合)。例如,在Spire的情况下,他们的支持团队已确认存在问题,并提出了解决方案的罚单。

0 个答案:

没有答案