C# itextsharp pdf的纵横合并问题(第一个解决者,给予大于 150 元的回报)

在使用itextsharp.dll 做pdf中,使用 rotate() 将pdf变成横着的,让后然后将PDF进行合并,发现这个pdf,又变成了纵向的。而里面的内容却变成了横着的。请问这个问题有没有解决的办法。第一个帮我解决问题的,给予大于 150 元的回报。

0

3个回答

///
/// 合成pdf文件
///
/// 需要合并的文件名列表
/// 输出路径
public static void mergePDFFiles(List fileList, string outMergeFile)
{
PdfReader reader;
Document document = new Document(PageSize.A4);
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(outMergeFile, FileMode.Create));
document.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage newPage;
for (int i = 0; i < fileList.Count; i++)
{
reader = new PdfReader(fileList[i]);
int iPageNum = reader.NumberOfPages;
for (int j = 1; j <= iPageNum; j++)
{
newPage = writer.GetImportedPage(reader, j);
document.SetPageSize(PageSize.A4.Rotate());
document.NewPage();
cb.AddTemplate(newPage, 0, -1f, 1f, 0, -10, reader.GetPageSizeWithRotation(j).Height);
}
}
document.Close();
}

            这样合并后的PDF纸张和字都是横向的了^_^
0

在合并的时候需要判断页面方向

0

///
///合并pdf文件(参数都是相对路径)
///
/// 合并之后的文件
/// 待合并的文件集合
public void MergePDFFiles(string outMergeFile, List Files)
{
if (String.IsNullOrEmpty(outMergeFile) || Files.Count == 0)
{ return; }

        outMergeFile = HttpContext.Current.Server.MapPath(outMergeFile);
        List<PdfReader> readerList = new List<PdfReader>();
        iTextSharp.text.Document document = new iTextSharp.text.Document(new Rectangle(297.5f, 297.5f), 1, 1, 0
            , 0);
        FileStream fs = new FileStream(outMergeFile, FileMode.Create);
        PdfWriter writer = PdfWriter.GetInstance(document, fs);
        document.Open();
        PdfContentByte cb = writer.DirectContent;
        PdfImportedPage newPage;
        for (int i = 0; i < Files.Count; i++)
        {
            string newpath = HttpContext.Current.Server.MapPath(Files[i]);
            PdfReader reader = new PdfReader(newpath);
            int iPageNum = reader.NumberOfPages;
            int startPage = 1;
            int rotation;
            while (startPage <= iPageNum)
            {
                document.NewPage();
                newPage = writer.GetImportedPage(reader, startPage);
                rotation = reader.GetPageRotation(startPage);
                if (rotation == 90)
                {
                    cb.AddTemplate(newPage, 0, -1f, 1f, 0, 0, reader.GetPageSizeWithRotation(startPage).Height);
                }
                else if (rotation == 180)
                {
                    cb.AddTemplate(newPage, -1f, 0, 0, -1f, reader.GetPageSizeWithRotation(startPage).Width, reader.GetPageSizeWithRotation(startPage).Height);
                }
                else if (rotation == 270)
                {
                    cb.AddTemplate(newPage, 0, 1f, -1f, 0, reader.GetPageSizeWithRotation(startPage).Width, 0);
                }
                else
                {
                    //a左右拉伸 b左倾斜 c右倾斜  d上下拉伸 e左右平移 f上下平移             
                    cb.AddTemplate(newPage, 1f, 0, 0, 1f, 0, 0);
                }
                startPage++;
            }
            readerList.Add(reader);
        }
        document.Dispose();
        writer.Dispose();
        fs.Dispose();
        //在上面的循环里面释放资源会报错
        foreach (var rd in readerList)
        {
            rd.Dispose();
        }
    }
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C# iTextSharp 简单合并PDF(不带书签)
public static void MergePdfFiles(string[] fileList, string outMergeFile) { PdfReader reader; List readerList = new List(); Document document = new Document(); PdfW
iTextSharp 生成PDF(C#)
通过iTextSharp生成PDF(C#)
C#导出PDF , iTextSharp
C#导出PDF 工具类,功能齐全,此版本符合网上大部分教程源码功能。
第一个解决者得分!
如何用installshield8打包,要求如下:rnSQL Server2000数据库服务器,rn前端开发CB,网络版(用ADO连接数据库)rn如何打包数据库--服务器端(自动安装*.MDF和*.LDF文件,即在SQL Server2000中注册)rn在客户端如何动态设置ADO的连接字符串(根据客户机的名称)rn
iTextSharp 合并PDF后删除合并文件
问题:之前开发的一个服务中,利用iTextSharp合并PDF文件后删除合并文件,提示合并文件被占用无法删除。 解决:合并时记录PdfReader到一个集合中,合并后释放PdfReader集合中的全部资源。 代码: /// 合并PDF /// PDF文件集合 /// 合并文件名 private void MergePDFFiles(str
C#解析PDF:客户化iTextSharp
PDF相关测试一直都是手动进行,自动化测试介入的很少。我们项目,PDF是很重要的一块,客户经常需要将报表导出到PDF。导出的可能是表格,也可能是饼图,条图,线图。表格的话,有flat grid,有tree grid。图的话,花样就更多了,图例,坐标轴…最近的迭代有个story,希望自动化测试能够判断表格导出到PDF格式是否正确。美国那边的on-site leader说让我先探索一下,能否用iText
iTextSharp 转PDF问题?
document.AddParagraph()//添加一个段落rnrn问题:如何设置段落的背景颜色?rn--只看见 设置字体 颜色 大小 [img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/6.gif][/img]
基于itextsharp的PDF分割合并完整示例
基于iTextSharp.5.5.13 开发环境:vs2017 c# 示例有完整的PDF分割合并功能 打开可直接运行
c# iTextSharp word转pdf
c#中可以利用iTextSharp ,将word转化成pdf吗?如果可以的话,请大家告诉我这个该怎么写。如果这个不可以,可以用其他的方法实现这个功能吗?
iTextSharp PDF 问题
我现在想要实现的是目录后面的页码问题 因为不知道文章的大小 所以不确定会有多少页 怎么解决?
巨难解决的维度建模问题,解决者高分回报!!!
我放在数据库讨论区了,可以链接rnrnhttp://expert.csdn.net/Expert/topic/2646/2646730.xml?temp=.6568567rnrn看到
iTextSharp生成PDF问题
rn System.Web.HttpContext.Current.Response.ContentType = "application/pdf";rn System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;rn System.Web.HttpContext.Current.Response.AddHeader("Content-disposition", string.Format("attachment; filename=0", fileName));rn System.Web.HttpContext.Current.Response.OutputStream.Write(memoryStream.GetBuffer(), 0, memoryStream.GetBuffer().Length);rn System.Web.HttpContext.Current.Response.OutputStream.Flush();rn System.Web.HttpContext.Current.Response.OutputStream.Close();rn这段代码怎么改为将pdf文件自动保存指定文件夹呀?
能给我解决者给予100$$$$$$$
我在WINDOW XP 系统下用VC++ 6.0 编的程序为何在WINDOW 2000下不能运行?如何才能在WINDOW 2000 下运行?请各高手指教。
打包问题,第一个解决者得分
如何用installshield8打包,要求如下:rnSQL Server2000数据库服务器,rn前端开发CB,网络版(用ADO连接数据库)rn如何打包数据库--服务器端(自动安装*.MDF和*.LDF文件,即在SQL Server2000中注册)rn在打包程序中客户端如何动态设置ADO的连接字符串(根据客户机的名称)
itextpdf解决PDF合并的问题
itextpdf解决PDF合并的问题本文章是我在项目开发过程中解决了一个关于PDF显示的需求而记录的。 需求是这样的,需要将两个PDF进行合并,一个PDF是根据数据库的信息在在后台形成的(实际不存在的PDF),另一个是磁盘保存的PDF文件(这个PDF文件后期会变成从云端获取)。作为一个Java菜鸟,这个问题解决了数天,还是在leader的指导下解决的。在这里做一下关键代码的记录。 项目主要包含了
帮忙解决一下,第一个解决者得分!!!!!
游戏里的汉字总是出现乱码,最好是用注册表解决问题,操作系统:win98!
iTextSharp怎样创建表格的问题?(Pdf)
我想用C#代码生成pdf在网上找了一下,找到一个iTextSharp。但是在创建表格的时候我不知道怎么指定每一个单元格的高和宽。有谁知道?除了这个组件,还有更好的吗?
iTextSharp: 图片 转 PDF 问题...
bmp 图片: 报错rn--------------------rnfile:///e:/1.bmp is not a recognized imageformat.rnrnpng 图片: 报错rn--------------------rnfile:///e:/1.png Colortype 6 is not suported.rnrnrn我测试着只有jpg图才好使.. 问题是转为jpg后,图片已失真... rnrnrn问题: 用没有办法让图片不失真转为pdf? 是不是pdf不支持真彩色的图片?
itextsharp导出PDF报表问题
最近在研究用 itextsharp.dll 开发pdf报表。rn因为没有具体的类说明书,所以很是痛苦,看了很多帖子和文章,感觉都是比较基础的直接创建pdf文件。rnrn我现在有以下几个困惑:rn1.itextsharp.dll是否支持直接从html转pdf文本。主要是想到前台已经用html+css构建了网页,而要导出的pdf也是这个样子。如果用现在网上的方法,需要在后台完全重新构建pdf的样式,感觉有些多余和重复。rn2.如果没有这种直接的方法,有没有其他类似的解决方案。因为我用对象浏览器看到itextsharp.dll里有htmlEncoder方法。rn3.最后就是各位一般都是用什么办法进行pdf报表开发的,有没有很棒的方法。我之前有看过用image把网页转换成图片然后导入pdf文件的。但是这个方法会把整个网页都转成图片,而真正要导出做报表的只是其中的某一部分。rnrn请各位大侠一起讨论讨论吧……
itextsharp 生成pdf的确问题
项目中用itextsharp生成pdf, 创建的table如果有很多行,程序默认在新的一页建立table,有时候一个页面就那么几行字就直接跳到新的一页建立表格。rnrn请问如何强制约束itextsharp不进行跳页rnrn
超奇怪,超难之怪问题,解决者高分回报!!
我新建了一个ActiveX DLL工程,在标准模块中,我定义了一个全局的ADO连接对象rnrnpublic gadocn as new adodb.connectionrnrn在 sub main() 中,我打开了该连接,rngadoCn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & strUser & ";Initial Catalog= " & strDatabase & ";Data Source=" & strServer & ";Password=" & strPasswordrnrn在类模块中,我定义了一个方法,是用该连接执行的一段查询语句,如rnrnpublic sub qry()rn dim rs as adodb.recordsetrn set rs=gadocn.execute("select * from db")rnend subrnrn然后,我运行了这个类,同时,我在另一个工程中引用了这个类,并调用了这个类的这个方法,非常奇怪的是,我第一次运行该工程的时候,一切正常,而当我停止运行,再重新运行一次工程时,却提示“一般性网络连接错误”之类的连接错误,只有我关闭VB,再重新打开该工程和类,才可以运行,可是到第二遍又不行了,以前从没出现过这样的问题,实在是太奇怪了!请帮帮我分析一下原因,万分感激
C# PDF iTextSharp教程(中文)+代码实例
ItextSharp官方代码示例 iTextShrp中文教程 !
itextsharp 5.5.9版本C#生成pdf
itextsharp 5.5.9版本C#生成pdf。ITextSharp5.0生成PDF,C#版本的
C#使用iTextSharp为pdf添加文字
1.项目添加dll 下载地址 2.代码添加引用 using iTextSharp.text; using iTextSharp.text.pdf; 3. PdfReader pdfReader = new PdfReader(Server.MapPath("../01.pdf"));//读pdf PdfStamper pdfStampe
C# 基于iTextSharp封装的PDF操作类
using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; namespace DotNet.Utilities { /// /// PDF文档操作类 /// //------------------调用-------------------------- //PDFOperation pdf = n
C#使用itextsharp生成PDF文件
前言 前段时间公司需要实现一个PDF文件下载功能,涉及到页眉页脚,段落,图片的生成。遂使用itextsharp来实现这一功能,但是itextsharp功能强大,类库繁多,特别是5.0版本后关于页眉页脚生成的介绍并不多,研究了好久,才弄成功,写下这篇博客做个记录。 先来看下最后实现的效果: 下面来看代码 添加引用:帮助类的代码,这个类可以直接使用,如果你需要增加或者完善某功能,可以对其进项
C# 用 iTextSharp 将 PDF 转成文本
C# 用 iTextSharp 将 PDF 转成文本的详细教程,很经典的。每个函数的说明和用法
使用itextsharp 生成pdf C# asp.net
使用itextsharp 生成pdf C# asp.net开发详细过程
c#生成pdf文档 iTextSharp方式
using iTextSharp.text; using iTextSharp.text.pdf; public void CreatePDF(string msg)         {             Document document = new Document(page, 56, 56, 50, 50);//控制距离左右上下的距离             string path...
基于iTextSharp(C#)创建PDF文件
基于iTextSharp控件(C#)创建PDF文件
c# winform 使用itextsharp 出力pdf
使用PdfPTable 形成单独的table出力,出现下图所示的问题,当页面不够一个table的高度时,显示不正确,有没有什么办法判断高度,或者自动换页的方法??rn[img=https://img-bbs.csdn.net/upload/201408/25/1408941411_490815.jpg][/img]rnrn
在线等待?请教有关StoreProcedure问题? 解决者给予500分
rn rn 在编写asp.net application 中 我想用StoreProcedure来访问数据库并把结果用DataGrid显示出来。rn 比如:在Text文本框中输入用户ID:521rn 然后点击“Select”按钮,就会把用户的信息用DataGrid显示出来rn 应怎么做?rnrn 我想知道Text文本框中输入的“字符串”是怎么传递给StoreProcedure的并能把结果计算得出的?rn
c#使用iTextSharp填充PDF模版文件
本文适用于导出pdf简历、合同之类业务,需先用pdf工具制作好pdf模版
C# 利用itextsharp对PDF文件加密
最近在研究itextsharp对PDF文件的加密,整理如下,希望帮助到有需要的朋友 部分代码如下: public static string src = "";//要加密的PDF文件 public static string dest="";//加密后生成的PDF文件 static void Main(string[] args)
C#使用iTextSharp处理PDF文档
PdfReader reader = new PdfReader(@&quot;F:\最后格式.pdf&quot;);//输入的PDF文件 PdfStamper pdfStamper = new PdfStamper(reader, new FileStream(@&quot;F:\最后格式1.pdf&quot;, FileMode.Create));//输出的PDF文件 BaseF...
itextsharp制作PDF文件
制作PDF文件itextsharp 产生PDF
itextSharp pdf 插件
.net 生成pdf 插件 itextsharp4.0
用iTextSharp生成PDF文件 C#源码
用iTextSharp生成PDF文件 C#源码 用iTextSharp生成PDF文件 C#源码
C#用iTextSharp导出PDF到页面
using iTextSharp.text; using iTextSharp.text.pdf;    //导出PDF  public ActionResult ImportFile(string date)         {             try             {                 List list = null;
C# itextsharp替换PDF中的某个图片
因业务需要pdf中的logo图片需要被换掉其它图片保留. 百度了很久也没找到相关的解决方案. 后来总算是解决了. 总结起来一句话, itextsharp的文档太少了. 尤其是关于几个基础类的相关文档, 还有pdf文档格式也是很要命的难理解. 简直是狗屎般的格式. 废话不多说上代码. private void Main() { //读取待替换...