首页 > 编程语言 >C# 将多个图片合成一个PDF

C# 将多个图片合成一个PDF

时间:2023-06-24 11:23:45浏览次数:36  
标签:stream imageData C# 合成 new FileStream using PDF pdf

一开始根据大部分网上的方式使用iTextSharp组件合成PDF,在初始化pdfdocument对象时,提示“未将对象引用设置为对象的实例”。

iTextSharp.text.pdf.PdfWriter.GetInstance(document, new FileStream(@"D:\1.pdf", FileMode.Create, FileAccess.ReadWrite));

不知道是否跟iTextSharp版本有关系不,尝试了降低了版本仍然存在该报错。

于是使用了itext7组件进行合成pdf

string[] files = { @"D:\101\1.jpg", @"D:\101\2.jpg" };
            using MemoryStream stream = new MemoryStream();
            using (PdfDocument pdfDocument = new PdfDocument(new PdfWriter(stream)))
            {
                for (int i = 0; i < files.Length; i++)
                {
                    ImageData imageData = ImageDataFactory.Create(files[i]);
                    var pageSize = new PageSize(imageData.GetWidth(), imageData.GetHeight());
                    PdfPage page = pdfDocument.AddNewPage(pageSize);
                    PdfCanvas canvas = new PdfCanvas(page, true);
                    canvas.AddImageFittedIntoRectangle(imageData, pageSize, true);
                }
            }

            using FileStream fs = new FileStream(@"D:\101\1.pdf", FileMode.OpenOrCreate);
            using BinaryWriter w = new BinaryWriter(fs);
            w.Write(stream.ToArray());

 

标签:stream,imageData,C#,合成,new,FileStream,using,PDF,pdf
From: https://www.cnblogs.com/log9527blog/p/17500838.html

相关文章

  • Tomcat-创建MavenWeb项目
       ......
  • STATA collapse详解
    //分类汇总//stata中collapse的用法////stata中的collapse命令是一种重新整理数据的有效工具,它可以将多个变量和水平的多维数据表合并成一个维度的数据表。它的语法格式如下:////collapse[varlist][,by(varlist)][ifexp][weight][usingfilename]////其中,va......
  • [算法学习笔记] Tarjan LCA
    在讲解之前,我们先来看一道模板题:LuoguP3379最近公共祖先(LCA)WhatisLCALCA,即最近公共祖先。什么意思呢,我们举个例子:将就着看吧qwq这棵树中,0为根节点。若规定\(LCA(x,y)\)为\(x,y\)的最近公共祖先,则\(LCA(5,6)=2;LCA(4,3)=1;LCA(5,3)=0\)。还有很多,这里不一一列举了。最......
  • CF1725C Circular Mirror
    虽然是一道绿题,但是感觉推式子时的一些细节还是值得学习的,并且还是有点\(2\)\(hard\)\(4\)\(me\)......一个圆上有\(N\)个可染色的点,编号\(1\toN\)。\(N\)号点和\(1\)号点相邻。你可以用\(M\)种颜色将这些点染色。要求不能出现有三个同色点围成直角三角形。请求......
  • 浅析LRC歌词文件
    浅析LRC歌词文件 [时间:2018-12][状态:Open][关键词:字幕,LRC,歌词,lyric,文件格式]0引言几年前(2010年左右),网络音乐流行与免费的时代,网上有大量的mp3,使用比较常见的播放器,比如酷狗、酷我、千千静听等,下载mp3时总会附带下载一个同名但以lrc为后缀的文本文件,在早几年你可能还会遇......
  • Logic Pro-mac苹果专业音频制作软件
    LogicPro是一款专业的音频编辑软件,具有高质量的音频编辑功能,让您可以在线处理您的音频文件,为您提供高质量的音效和完美的声音。LogicPro用于多种用途的专业音频编辑软件,无论是制作音乐、特效、混音或音频录制等,都可以使用LogicPro。该软件功能强大、简单易用。LogicPro使用先......
  • [C/C++] Visual Stdio Code中多线程多源码文件编译、运行和调试
    搞了很久,记录一下:一.环境OS:Ubuntu20.04VSCode:1.77.0g++:g++(Ubuntu9.4.0-1ubuntu1~20.04.1)9.4.0二.配置文件下面两个文件先不要手动创建,下面第三章会讲到:task.json:编译程序的配置文件;launch.json:运行程序的配置文件.三.编译&运行1.打开main函数所在的cpp文......
  • Rock9网卡配置
    1.正常配置网卡默认没有文件,手动创建vi/etc/sysconfig/network-scripts/ifcfg-eth0TYPE=EthernetBOOTPROTO=staticNAME=eth0DEVICE=eth0ONBOOT=yesIPADDR=10.0.0.10GATEWAY=10.0.0.2NETMASK=255.255.255.0DNS1=223.6.6.6vi/etc/sysconfig/network-scripts/ifcfg-......
  • AIGC中下游更值得创业者投入
    2023年初,ChatGPT的出现,引发了国内外各类AIGC技术应用的爆发,让人们看到了新世界的曙光,也感受到了迫在眉睫的剧变。无论是前沿科技产业还是整个经济社会格局,都将因此产生巨大的变化,众多企业将迎来价值重估,无数行业将面临重做。作为15年来陪伴数以十万计创业者共同成长的产业加速平......
  • Freertos学习01-Task Creat & Delete
    一、Freertos介绍FreeRTOS是一个开源的实时操作系统内核,它是由英国的RealTimeEngineersLtd.开发的。它提供了一些基本的内核功能,如任务管理、时间管理、信号量、队列和软件定时器等,可以帮助开发人员更容易地构建嵌入式系统。FreeRTOS是一个非常流行的实时操作系统内核,因为它是......