我需要使用客户提供的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的情况下,他们的支持团队已确认存在问题,并提出了解决方案的罚单。