我想使用itextsharp库将gridview导出为pdf.问题是在pdf文档中缺少一些土耳其字符,如İ,ı,Ş,ş等.用于导出pdf的代码是:
protected void LinkButtonPdf_Click(object sender, EventArgs e)
{
Response.ContentType = "application/pdf";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AddHeader("content-disposition", "attachment;filename=FileName.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
System.IO.StringWriter stringWrite = new StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView1.RenderControl(htmlWrite);
StringReader reader = new StringReader(textConvert(stringWrite.ToString()));
Document doc = new Document(PageSize.A4);
HTMLWorker parser = new HTMLWorker(doc);
PdfWriter.GetInstance(doc, Response.OutputStream);
doc.Open();
parser.Parse(reader);
doc.Close();
}
public static string textConvert(string S)
{
if (S == null) { return null; }
try
{
System.Text.Encoding encFrom = System.Text.Encoding.UTF8;
System.Text.Encoding encTo = System.Text.Encoding.UTF8;
string str = S;
Byte[] b = …Run Code Online (Sandbox Code Playgroud) 是否有任何类似于Flying Saucer项目的开源.NET项目(或端口),它使用iText将HTML呈现为PDF?
我正在填写使用Acrobat pro和iTextSharp&C#创建的pdf表单,并且在尝试勾选复选框字段时发现自己卡住了.
我有它的单选按钮和文本框,但似乎无法使复选框工作.我还确认了这个案例中的复选框名称"Q7b"在acrobat文档中是正确的,可以使用下面的代码在表单上找到它
private string getfieldnames(AcroFields fields)
{
StringBuilder sb = new StringBuilder();
foreach (string key in fields.Fields.Keys)
{
sb.Append(key + Environment.NewLine);
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
我用来更新复选框的代码如下
using (MemoryStream pdfFlat = new MemoryStream())
{
PdfReader pdfReader = new PdfReader(strPath);
PdfStamper pdfStamp = new PdfStamper(pdfReader, pdfFlat);
AcroFields fields = pdfStamp.AcroFields;
//textfields
fields.SetField("Initiating_Doctor", "Doctor A");
fields.SetField("Speciality", "Surgeon");
//Radiobuttons
fields.SetField("PRELIM_Q1", "Yes");
fields.SetField("PRELIM_Q2", "No");
fields.SetField("PRELIM_Q3", "No");
fields.SetField("PRELIM_Q4", "No");
//checkbox - Set the checkbox to checked but this does not work.
fields.SetField("Q7b", "Yes");
pdfReader.Close();
pdfStamp.FormFlattening …Run Code Online (Sandbox Code Playgroud) iTextSharp 4.1.6是LGPL许可的最后一个版本,可以免费用于商业用途而无需支付许可费.
对于某些人而言,对于我来说,如何使用此版本提取文本可能会很有趣.
有没有人有想法?
我正在使用iTextsharp- 一个java pdf lib - 动态生成pdfs.据我所知,测量结果以点数表示.我知道在哪里放置厘米的地方.所以我需要转换:点< - > cm
我需要能够从某些PDF文档中删除安全性/加密,最好使用itextsharp库.过去,这是可能的(如何通过提供文件使用C#参数的密码解密一个pdf文件?),但最近的变化到库意味着解决方案不再起作用.
我知道这可以通过Aspose PDF库(示例)完成,但这似乎是一个昂贵的选择.
编辑
所以这一次我以为我拥有我用来测试这个文档的所有者密码.但实际上我的密码是用户密码.的原因,我认为这是所有者密码,是因为它曾作为所有者的密码和其他值没有工作.我相信用户密码代替用户密码的原因是该PdfReader.unethicalreading字段被设置为true(它是一个碰巧在代码中的其他地方设置的全局标志).
如何从Web应用程序生成纸质打印?
具体来说,我正在考虑更复杂的纸质文件,如文凭,发票和合同.包含框架,表格,徽标和页眉/页脚的可变页数.
今天我使用自定义表单和CSS用于某些事情,iTextSharp用于其他人(我使用asp.net和MS-SQL),但我认为这两种方法都非常耗时且很难在不同文档中保持一致.
还有更好的方法吗?
我正在尝试使用ItextSharp中的PdfSmartCopy,但我在c#中找不到任何相关的例子.
我的意思是我有一个包含表单字段的pdf,并且这些字段增加了700kb到pdf文档的大小.没有表单字段的原始文档是100kb.欢迎任何其他sugestions,尤其是o一致地减少pdf大小.
(我使用adobe acrobat优化了生成的PDF,并将其减少到44kb.因此必须在某处出现故障.)有没有办法减少PDF大小?
编辑:FormFlatenning没有帮助.pdf模板文件仅包含文本,行和表,没有图像.
这是我的代码片段
PdfReader reader = new PdfReader(GetTemplateBytes());
pst = new PdfStamper(reader, Response.OutputStream);
var acroFields = pst.AcroFields;
pst.FormFlattening = true;
pst.FreeTextFlattening = true;
SetFieldsInternal(acroFields);
pst.Close();
Run Code Online (Sandbox Code Playgroud) 我正在创建一个解析器,将Word文档转换为PDF,并在此过程中进行一些专门的处理.我选择使它成为一个递归解析器,以匹配OpenXml的结构.
我遇到了处理图像的一些问题.给定OpenXml的结构,图像始终是段落内的绘图元素.如果该段落直接在doc中,这样可以正常工作,基本上就是这样(对于这个例子来说,解开了递归):
using (var document = new Document(PageSize.A4))
{
PdfWriter.GetInstance(document, new FileStream(path, FileMode.Create));
document.Open();
var paragraph = new Paragraph();
var image = Image.GetInstance(@"C:\image1.jpg");
paragraph.Add(image);
document.Add(paragraph);
document.Close();
}
Run Code Online (Sandbox Code Playgroud)
此代码正确地将图像插入到文档中.当图像在表格内时会出现问题,这在我们正在处理的文档中很常见.OpenXml结构最终会像这样结束:
DocumentBody => Table => Cell => Paragraph => Drawing
所以在iTextSharp术语中,映射到:
Document => Table => Cell => Paragraph => Image
将带有图像的段落直接添加到单元格会生成一个空的零高度表.如果我添加块到该段时的形象出现,但大幅调整(小) - 我想不出什么是大小调整的依据是:
using (var document = new Document(PageSize.A4))
{
PdfWriter.GetInstance(document, new FileStream(path, FileMode.Create));
document.Open();
var paragraph = new Paragraph();
var image = Image.GetInstance(@"C:\image1.jpg");
paragraph.Add(new Chunk(image, 0, 0));
var table = new PdfPTable(1); …Run Code Online (Sandbox Code Playgroud) 您好我一直在使用itextSharp为dot.net中的所有pdf相关项目.我遇到了一个需要将PDF页面转换为图像的要求.我找不到任何这样的样品.我发现另一个工具ghostscript能够做到这个问题是我在共享主机上我不认为ghostscript将在服务器上运行,因为在我的本地机器我不得不手动将ghost脚本dll复制到system32文件夹在共享主机中是不可能的.
itextsharp ×10
c# ×9
asp.net ×4
pdf ×3
.net ×1
encryption ×1
html-to-pdf ×1
itext ×1
printing ×1