最新评论
#RubyPdf
有关BMP转JPG的我用ARM测试了下目前是可以用的(可以暂时应付下,主要注意点为:质量的调整,RGB与BGR的顺序问题,还有就是行序问题修正后应可以先过渡性的交差了),
另我这有份PNG的源码,里面有Ziplib的源码(应可以移植到ARM下),目前还没有提取出来,不知是不是与PDF中的Zip中一样,还有一个问题是我发现转PDF时通常只有一页,有没有相关的资料说明多页的,请指点,谢谢!!
@威胁就是机会
那你就先看下那段代码嘛
你打算怎么交流?
@Huer
我们公司最近也想做你一样的功能(主要在ARM下),我今天和同事找下相关资料,发现要先转成JPG,BMP转JPG相关代码(ARM)也找到了,JPG加入到PDF的代码我有一份,但是是unix,我目前还没有看,希望我们能交流下,能够把任务做好,我目前先要做成JPG的格式,后一步做成PDF的格式
楼主,您好!最近我们公司在做生成PDF格式的项目,主要由我来负责,我们主要是用c语言编写,把bmp图片转换为PDF格式,并且实现多页PDF,一页一幅图像。我下载到了PDF的国际标准ISO 32000-1:2008。最近在通过这个标准学习PDF的文件结构。现在还是个起步阶段,您能否给小妹一些指点,谢谢了!我的邮箱是shiyanhui307@163.com.能否给我您的邮箱,有问题我们可以交流一下,谢谢!
string strImagePath = "E:\\Workspace\\图片\\00000039-1";
if (Directory.Exists(strImagePath))
{
string[] imageFiles = Directory.GetFiles(strImagePath);
Document docAll = null;
PdfWriter pwAll = null;
for (int i = 0; i < imageFiles.Length; i++)
{
string imgFile = imageFiles[i];
string[] imgName = imgFile.Substring(imgFile.LastIndexOf("\\") + 1).Split('.');
if (imgName[1].ToLower() == "jpg" || imgName[1].ToLower() == "tif" || imgName[1].ToLower() == "gif")
{
Image img = Image.GetInstance(imgFile);
float percent = 72f / img.DpiX;
img.ScalePercent(percent * 100);
string savePath = "E:\\Export\\PDF\\单层\\";
if (!Directory.Exists(savePath))
{
Directory.CreateDirectory(savePath);
}
string pdfName = "00000039.pdf";
if (i == 0)
{
docAll = new Document(new Rectangle(img.Width * percent, img.Height * percent), 0, 0, 0, 0);
if (File.Exists(savePath + pdfName))
{
File.Delete(savePath + pdfName);
}
pwAll = PdfWriter.GetInstance(docAll, new FileStream(savePath + pdfName, FileMode.Create));
pwAll.PdfVersion = PdfWriter.VERSION_1_6;
docAll.Open();
}
docAll.Add(img);
if (i != imageFiles.Length - 1)
{
string[] tempImgName = imageFiles[i + 1].Substring(imageFiles[i + 1].LastIndexOf("\\") + 1).Split('.');
if (tempImgName[1].ToLower() == "jpg" || tempImgName[1].ToLower() == "tif" || tempImgName[1].ToLower() == "gif")
{
Image nextImage = Image.GetInstance(imageFiles[i + 1]);
float width = nextImage.Width * percent;
float height = nextImage.Height * percent; docAll.SetPageSize(new Rectangle(width, height));
docAll.NewPage();
}
}
}
}
if (docAll.IsOpen())
{
docAll.Close();
}
}
这是我测试的代码,请指正....
@mmmmmmm
最后附上你的代码,否则我也没有办法回答你
@CSharpProber
方便把代码放上来看看,这种情况,恐怕还是你没有正确设置Pdf page的尺寸。
您好,我是刚研究itextsharp这个控件的,使用过程中出现了一些问题,望不吝赐教:
问题描述:把一批尺寸大小不一的图片批量添加到一个PDF中时,生成的PDF尺寸大小与原图片不一致,我使用了SetPageSize这个方法,生成后大部分是一致的,只有在遇到这种情况时出会现偏差,如:
第1张图片大小为1652*2338.
第2张图片大小为2338*1652.
第3张图片大小为5338*4296.
第4张图片大小为1652*2338.
第5张图片大小为5338*4296.
第6张图片大小为1652*2338.
第7张图片大小为1652*2338.
批量添加到一个PDF中时,按原始尺寸缩放设置后第4张和第6张的图片大小是第3张和第5张的大小,不是设置的大小
楼主,我怎么用都不能显示中文怎么回事?只有chapter和section的title中才会有中文显示。
[quote]panxiong:
大侠 问1个问题
document.add( new Paragraph( new Chunk("back page",
FontFactory.getFont( FontFactory.HELVETICA, 16, Font.BOLD, new Color( 0, 0, 0))).setAnchor("http://www.google.com");
为何那个“back page”处只能用英文 不能用中文 用中文就无法显示(pdf其他地方能显示中文 也做了中文处理)[/quote]
你这是java的代码
使用中文,你得用中文的字体
如果用中文字体仍然有问题,你把代码贴出来,我看看
大侠 问1个问题
document.add( new Paragraph( new Chunk("back page",
FontFactory.getFont( FontFactory.HELVETICA, 16, Font.BOLD, new Color( 0, 0, 0))).setAnchor("http://www.google.com");
为何那个“back page”处只能用英文 不能用中文 用中文就无法显示(pdf其他地方能显示中文 也做了中文处理)
@shuiwuhen
参考下这篇文章吧
http://www.sanjbee.com/content/?p=96
楼主你好,itextsharp风靡了这么久,现在才刚接触,惭愧,想教你个问题,web打印时,能不能不弹出打印设置窗口,直接以默认值直接就打印……itextsharp能设置吗?
Re:Sqlite使用中的几点体会。 RubyPDF 2011-01-27 10:26
[quote]ITLOVER:
你提到:"一开始没有显式调用事务"
请问下,你最终是如何解决的?
好像单条语句不需要事务,批量操作的话,用事务性能要好的多。[/quote]
先begin traction
批量导入工作
最后commit
这样上千条甚至更多的导入工作只有一个事务调用,大大增加了导入速度。
Re:Sqlite使用中的几点体会。 ITLOVER 2011-01-24 15:06
你提到:"一开始没有显式调用事务"
请问下,你最终是如何解决的?
好像单条语句不需要事务,批量操作的话,用事务性能要好的多。
可以提供一下吗.我的邮箱是B_xiajing@hotmail.com
再次运行则出现如下错误:Can not Create:1.pdf
当我pdfcropper yanshixue.pdf 1.pdf时,出现如下错误,原文件基本上没有切掉,直接输出了一个几乎一摸一样的1.pdf
WARNING: could not properly read security provider files:
file:///mingw/lib/security/libgcj.security
file:///mingw/lib/security/classpath.security
Falling back to standard GNU security provider
能不能将你的PDFForm.aspx它的后台代码共享一下吗,我现在正在研究它,谢谢!!
SharpZipLib_0.86 处理空文件也是能成功打包的。
nice!
but i have some question about how to use Develop Tool on the ruby on rails.
@trueblue
看看这篇文章
http://www.cnblogs.com/hardrock/archive/2005/11/16/277417.html
@mike zhang2008
[quote]mike zhang2008:@RubyPDF
<br/>是的,谢谢! 我现在用itextsharp+C#在尝试。还想请教下:
<br/>PdfWriter.getInstance(document, new FileStream("test.pdf", FileMode.Create)); 是可以在当前目录创建一个PDF文件。这段代码可不可以,修改为打开已有的PDF文件呢?我一直没有找到方法。我希望先能用itextsharp做一个对已有PDF添加自定义水印的程序,但现在卡在这里了。[/quote]
18楼的老兄,我也在找这个问题,我需要对已有内容的文件页脚上加图片,找不到解决方法!
@Believe
先看下这个教程是否有你想要的
http://www.codeproject.com/KB/cs/iTextSharpPdfTables.aspx
你好楼主,想问也下,我用itextsharp.text.document来生成pdf文件,我在document中填充的是table,因为要在一个表里放很多个同类型的对象,但是每个对象所包含的属性可能有多有少 我怎么能做到在分页的时候做到把某一个对象不会分开到两页里面打印出来?
成功嵌入字符集。
很奇怪谷歌搜不到这个软件,可能因为涉及版权问题。
更奇怪的是花了好多心思下到这个软件,却花了更多的时间学会使用它。原来要将字体托到软件图标上才它才会处理,因此,仅仅是把字体复制出来和软件一同放在一个文件夹是远远不够的。并且,它一次只处理一个字体,但时间非常快。处理成功后,字体属性里的“修改时间”应当是当前的电脑时间,否则未处理。
非常感谢作者。有了它,在保存文件的时候终于不再出现烦人的警告了。
附终极使用方法:将要处理的字体从系统的字体文件夹中复制出来,并放到另一个文件夹。将软件放到这个文件夹,将待处理的字体一一托到软件图标上。将处理后的字体放回系统的字体文件夹,如果提示“必须先删除原有字体才能安装相应的字体”并没有覆盖安装的选项,那么,取消安装,把系统文件夹里,最初复制过的字体删除(因为它们只是复制出来一个副本并未从系统中删除),再安装处理过的字体。
注意:你要记得最初复制出来的字体都有哪些,不要处理的字体最好不要动如系统字体。
使用者应当自己权衡侵权风险。
[quote]ansenyu:
楼主,你好!我现在遇到一个问题,在PDF中加入由CAD输出的WMF文件时,WMF文件中的汉字有的会出现乱码,不知道有什么办法可以解决?
期盼佳音!谢谢![/quote]
麻烦你给我一份wmf,我看看
楼主,你好!我现在遇到一个问题,在PDF中加入由CAD输出的WMF文件时,WMF文件中的汉字有的会出现乱码,不知道有什么办法可以解决?
期盼佳音!谢谢!
[quote]elwin.wang:老大,iTextSharp能不能做到禁用PDF另存为?谢谢! [/quote]
不行
老大,iTextSharp能不能做到禁用PDF另存为?谢谢!
请问一下楼主用的是哪个版本的itextsharp?是4.16版本吗?请问楼主有英文的itextsharp api吗?官方的那种
Re:ASP.NET空间使用SQLite遇到的麻烦 RubyPDF 2009-11-19 18:18
是的,sqlite真的结合.net用起来也许不是什么特别好的方案,也许它更适合其他开发语言,适合非微软的开发语言吧
Re:ASP.NET空间使用SQLite遇到的麻烦 Jake Lin 2009-11-19 18:06
@RubyPDF
你说这个吗? http://code.google.com/p/csharp-sqlite/
Re:ASP.NET空间使用SQLite遇到的麻烦 RubyPDF 2009-11-19 16:02
[quote]Jake Lin:
@RubyPDF
我想他那个项目是使用managed c++编译了sqlite原先的源码。 请问你有在host用sqlce3.5吗?这个应该比access好很多。
[/quote]
不熟悉sqlce3.5,不过刚看到有个C#版本的sqlite实现,完全用C#重写,可靠性如何还不知道
不过对C#读大数据不太敢恭维
[quote]minimo:
我想知道有什么办法将aspx或html页面转换成pdf?
谢谢[/quote]
没有太好的办法
需要格式化为xhtml,但iTextSharp现有的类对html的tag支持有限,自己要做更多努力
我想知道有什么办法将aspx或html页面转换成pdf?
谢谢
Re:ASP.NET空间使用SQLite遇到的麻烦 Jake Lin 2009-11-18 18:41
@RubyPDF
我想他那个项目是使用managed c++编译了sqlite原先的源码。 请问你有在host用sqlce3.5吗?这个应该比access好很多。
@老Q
我想要个免费的sqlserver 空间 电话又发
18721017810
caravarn7@gmail.com
[quote]思益工作室:呵呵,忘了说了,我也是T60-D64,水货,哈哈![/quote]
同样的机器,同样的毛病,呵呵。
昨天又碰上机器起不来了,2007年买机器后(装好的系统),再没有重装过系统,系统不那么稳定了。 昨天休眠失败,重启就是起不来,把休眠文件删除也不行,没有办法弄个WinPE把C盘修复下,竟然OK了。
不到万不得已,懒得装新系统,修修补补继续使用。
呵呵,忘了说了,我也是T60-D64,水货,哈哈!
我也是fan error,对着网上拆解视频,自己动手,跟你一样,简单搞定。用了一年多了,一点事没有。
[quote]lucinkapes:Really you not know? please.[/quote]
Sorry for the delay, I am some busy recently, and the code you want,
Document doc = new Document();
PdfWriter.GetInstance(doc, File.Create(@"c:\a.pdf"));
doc.Open();
BaseFont bf = BaseFont.CreateFont(@"c:\windows\fonts\Arial.ttf", BaseFont.CP1250, BaseFont.EMBEDDED);
Font font = new Font(bf, 10);
doc.Add(new Paragraph("č", font));
doc.Close();
P.S. not all fonts support this character, please check the webpage you give me, and find which font supports it.
Really you not know? please.
Hello, Can I ask what I must do if I want write to PDF char "č" (http://www.fileformat.info/info/unicode/char/010d/index.htm) Other our czech chars are ok! (for example "ř","š", etc work good). If I write "č" I see whitespace only. Thank you for your advice.
Lucinkapes
Czech Republic
大侠 问2个问题
document.add( new Paragraph( new Chunk("back page",
FontFactory.getFont( FontFactory.HELVETICA, 16, Font.BOLD, new Color( 0, 0, 0))).setAnchor("http://www.google.com");
为何那个“back page”处只能用英文 不能用中文 用中文就无法显示(pdf其他地方能显示中文 也做了中文处理)
第二个问题
我如何在指定位置写一个超链接呢。只是能在指定位置写一个普通文本
PdfContentByte cb = writer.getDirectContent();
BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
cb.beginText();
cb.setFontAndSize(bf, 12);
cb.setTextMatrix(100, 400);
cb.showText("Text at position 100,400.");
cb.showText(new Paragraph(
new Chunk("aaa", FontFactory.getFont(
FontFactory.HELVETICA, 16, Font.BOLD, new Color(
0, 0, 0))).setAnchor("MeaItemPayPdf.do?bid="+bid+"&page="+(Integer.parseInt(page)-1))).toString());
cb.endText();
敬请指教 谢谢