首页 新闻 会员 周边

两个PDF页面叠加之后生成的ps文件丢失透明度

0
悬赏园豆:50 [待解决问题]
两个PDF页面叠加之后生成的ps文件丢失透明度
                Spire.Pdf.PdfDocument doc1 = new Spire.Pdf.PdfDocument();
                doc1.LoadFromFile(openFileDialog.FileName);//加载第一个PDF

                Spire.Pdf.PdfDocument doc2 = new Spire.Pdf.PdfDocument();
                doc2.LoadFromFile(openbmpDialog.FileName);//加载第二个PDF
               
                //创建模板
                Spire.Pdf.Graphics.PdfTemplate template = doc1.Pages[0].CreateTemplate();

                foreach (PdfPageBase page in doc2.Pages)
                {
                    //设置透明度和重叠样式
                    page.Canvas.SetTransparency(1f, 1f, PdfBlendMode.Darken);

                    //将第一个页面的内容写人第二个页面,并设置其位置
                    page.Canvas.DrawTemplate(template, new PointF(0f, 0f));
                }

                //保存文档
                string pdfsave = Path.GetDirectoryName(openbmpDialog.FileName) + "\\newpdf.pdf";
                doc2.SaveToFile(pdfsave, FileFormat.PDF);//先导出PDF文件,

                string pssave = Path.GetDirectoryName(openbmpDialog.FileName) + "\\newps.ps";
                doc2.SaveToFile(pssave, FileFormat.POSTSCRIPT);//再导出postscript文件

                doc1.Dispose();
                doc2.Dispose();
如图:

PDF文件显示正常

postscript文件只显示最上边一层

也尝试使用ghostscript进行生成ps文件,但是我的像素点被破坏了,如图:

No--bug的主页 No--bug | 初学一级 | 园豆:152
提问于:2022-07-29 14:46
< >
分享
所有回答(1)
0

改下这句代码试试:page.Canvas.SetTransparency(1f, 1f, PdfBlendMode.Overlay);

ms_doudou | 园豆:1166 (小虾三级) | 2022-07-29 17:34

使用Overlay还是不行,而且PDF里蓝色底图也模糊了-_-||

支持(0) 反对(0) No--bug | 园豆:152 (初学一级) | 2022-07-29 18:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册