C#的Graphics有没有比较好的画pdf方案?

时间:2021-03-19 19:54:56
如题所示,目前有需求想把Graphics(已经画好的)转成pdf格式的数据,不知道哪位大神有比较好的方案

11 个解决方案

#1


转成图片,然后找找 img2pdf之类的工具

#2


C#的Graphics有没有比较好的画pdf方案?

转成图片后,用Aspose.pdf直接保存成PDF

#3


Graphics只是画图工具
Image或bmp对象里面才是你的图像

#4


可以尝试下第三方组件 Spire.PDF
转成图片后,添加PDF的dll文件 ,再添加代码:
//Create a pdf document.
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile(@"..\Sample.pdf");
            Image image = Image.FromFile(@"..\images.jpg");

            //adjust image size
            int width=image.Width;
            int height=image.Height;
            float schale=1.5f;
            Size size=new Size ((int)(width*schale),(int)(height*schale));
            Bitmap schaleImage = new Bitmap(image, size);

            //insert image into the first PDF page at specific position
            PdfImage pdfImage = PdfImage.FromImage(schaleImage);
            PdfPageBase page0 = doc.Pages[0];
            PointF position = new PointF((page0.Canvas.ClientSize.Width - schaleImage.Width) / 2, 210);
            page0.Canvas.SetTransparency(0.5f);
            page0.Canvas.DrawImage(pdfImage, position);
            page0.Canvas.SetTransparency(1.0f);

            doc.SaveToFile(@"pdfimage.pdf");
            System.Diagnostics.Process.Start(@"pdfimage.pdf");

教程可以 参考这里

#5


引用 1 楼 assky124 的回复:
转成图片,然后找找 img2pdf之类的工具
如果转成图片对于我来说就不是矢量图了

#6


引用 3 楼 Z65443344 的回复:
Graphics只是画图工具
Image或bmp对象里面才是你的图像
明白,我已经用Graphics画结束了,需要转成矢量图,正在纠结中

#7


引用 4 楼 Eiceblue 的回复:
可以尝试下第三方组件 Spire.PDF
转成图片后,添加PDF的dll文件 ,再添加代码:
//Create a pdf document.
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile(@"..\Sample.pdf");
            Image image = Image.FromFile(@"..\images.jpg");

            //adjust image size
            int width=image.Width;
            int height=image.Height;
            float schale=1.5f;
            Size size=new Size ((int)(width*schale),(int)(height*schale));
            Bitmap schaleImage = new Bitmap(image, size);

            //insert image into the first PDF page at specific position
            PdfImage pdfImage = PdfImage.FromImage(schaleImage);
            PdfPageBase page0 = doc.Pages[0];
            PointF position = new PointF((page0.Canvas.ClientSize.Width - schaleImage.Width) / 2, 210);
            page0.Canvas.SetTransparency(0.5f);
            page0.Canvas.DrawImage(pdfImage, position);
            page0.Canvas.SetTransparency(1.0f);

            doc.SaveToFile(@"pdfimage.pdf");
            System.Diagnostics.Process.Start(@"pdfimage.pdf");

教程可以 参考这里
转成图片就不是矢量图了。对于我的需求就没啥用了

#8


直接打印到pdf虚拟打印机呢?

#9


lz如果找到这样的方案一定通知一下~~~

#10


引用 8 楼 xuanbg 的回复:
直接打印到pdf虚拟打印机呢?
虚拟打印机,还是不行。我觉得还是直接从代码级别解决比较好,试过pdfCreator了,不太好用

#11


引用 9 楼 wjq 的回复:
lz如果找到这样的方案一定通知一下~~~


可以联系我交流经验QQ38371703

#1


转成图片,然后找找 img2pdf之类的工具

#2


C#的Graphics有没有比较好的画pdf方案?

转成图片后,用Aspose.pdf直接保存成PDF

#3


Graphics只是画图工具
Image或bmp对象里面才是你的图像

#4


可以尝试下第三方组件 Spire.PDF
转成图片后,添加PDF的dll文件 ,再添加代码:
//Create a pdf document.
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile(@"..\Sample.pdf");
            Image image = Image.FromFile(@"..\images.jpg");

            //adjust image size
            int width=image.Width;
            int height=image.Height;
            float schale=1.5f;
            Size size=new Size ((int)(width*schale),(int)(height*schale));
            Bitmap schaleImage = new Bitmap(image, size);

            //insert image into the first PDF page at specific position
            PdfImage pdfImage = PdfImage.FromImage(schaleImage);
            PdfPageBase page0 = doc.Pages[0];
            PointF position = new PointF((page0.Canvas.ClientSize.Width - schaleImage.Width) / 2, 210);
            page0.Canvas.SetTransparency(0.5f);
            page0.Canvas.DrawImage(pdfImage, position);
            page0.Canvas.SetTransparency(1.0f);

            doc.SaveToFile(@"pdfimage.pdf");
            System.Diagnostics.Process.Start(@"pdfimage.pdf");

教程可以 参考这里

#5


引用 1 楼 assky124 的回复:
转成图片,然后找找 img2pdf之类的工具
如果转成图片对于我来说就不是矢量图了

#6


引用 3 楼 Z65443344 的回复:
Graphics只是画图工具
Image或bmp对象里面才是你的图像
明白,我已经用Graphics画结束了,需要转成矢量图,正在纠结中

#7


引用 4 楼 Eiceblue 的回复:
可以尝试下第三方组件 Spire.PDF
转成图片后,添加PDF的dll文件 ,再添加代码:
//Create a pdf document.
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile(@"..\Sample.pdf");
            Image image = Image.FromFile(@"..\images.jpg");

            //adjust image size
            int width=image.Width;
            int height=image.Height;
            float schale=1.5f;
            Size size=new Size ((int)(width*schale),(int)(height*schale));
            Bitmap schaleImage = new Bitmap(image, size);

            //insert image into the first PDF page at specific position
            PdfImage pdfImage = PdfImage.FromImage(schaleImage);
            PdfPageBase page0 = doc.Pages[0];
            PointF position = new PointF((page0.Canvas.ClientSize.Width - schaleImage.Width) / 2, 210);
            page0.Canvas.SetTransparency(0.5f);
            page0.Canvas.DrawImage(pdfImage, position);
            page0.Canvas.SetTransparency(1.0f);

            doc.SaveToFile(@"pdfimage.pdf");
            System.Diagnostics.Process.Start(@"pdfimage.pdf");

教程可以 参考这里
转成图片就不是矢量图了。对于我的需求就没啥用了

#8


直接打印到pdf虚拟打印机呢?

#9


lz如果找到这样的方案一定通知一下~~~

#10


引用 8 楼 xuanbg 的回复:
直接打印到pdf虚拟打印机呢?
虚拟打印机,还是不行。我觉得还是直接从代码级别解决比较好,试过pdfCreator了,不太好用

#11


引用 9 楼 wjq 的回复:
lz如果找到这样的方案一定通知一下~~~


可以联系我交流经验QQ38371703