我正在尝试与iTextSharp进行一些精确的对齐,但是我一直在努力,因为我无法找到获得块或段落的宽度/高度值的方法.如果我创建一个特定字体和大小的文本和文本,那么它的尺寸应该是已知的,对吗?
我知道默认的左/右/中心对齐对我来说很有用,但我知道尺寸最有用的场景.有任何想法吗?
我试图将自定义字体设置为段落,但我无法使其工作.我尝试设置.Font =,但它只能在大小方面工作,但它忽略了字体.你能帮忙吗?
Paragraph T = new Paragraph(newTempLine);
iTextSharp.text.Font contentFont = iTextSharp.text.FontFactory.GetFont("Webdings", 12, iTextSharp.text.Font.NORMAL);
T.Font = contentFont;
myDocument.Add(T);
Run Code Online (Sandbox Code Playgroud) 按照此SO解决方案在此处通知客户PDF文档中的单击事件,如何在客户端使用this.myPDF.submitForm("localhost/Handler.ashx?r = 2"提交PDF时通知客户端)功能?
PDF文件在用户控件内创建,然后呈现为HTML对象:
string container = ("<object data='/myfile.pdf' type='application/pdf'></object>");
Run Code Online (Sandbox Code Playgroud)
附加到PDF的JS文件是这样完成的:
var webClient = new WebClient();
string htmlContent = webClient.DownloadString(fileurl + "pdf_script.js");
PdfAction action = PdfAction.JavaScript(htmlContnent, pdfstamper.Writer);
pdfstamper.Writer.SetOpenAction(action);
Run Code Online (Sandbox Code Playgroud)
和js文件的内容:
this.disclosed = true;
if (this.external && this.hostContainer) {
function onMessageFunc(stringArray) {
try {
this.myPDF.submitForm("http://localhost/Handler.ashx?EmpNo=12345" + "#FDF", false);
}
catch (e) {
}
}
function onErrorFunc(e) {
console.show();
console.println(e.toString());
}
try {
if (!this.hostContainer.messageHandler);
this.hostContainer.messageHandler = new Object();
this.hostContainer.messageHandler.myPDF = this;
this.hostContainer.messageHandler.onMessage = onMessageFunc;
this.hostContainer.messageHandler.onError = onErrorFunc;
this.hostContainer.messageHandler.onDisclose = function …Run Code Online (Sandbox Code Playgroud) 我有一个PDF模板,其中包含启用了扩展功能的表单.使用iTextSharp填写此表单的字段后,使用acrobat reader的用户会收到错误消息:
本文档在Adobe Reader中启用了扩展功能.该文档自创建以来已更改,并且不再使用扩展功能.请联系作者以获取本文档的原始版本.
我google了一下,但所有的帖子都谈到了"启用"扩展功能,但是,我希望表单字段保持禁用状态并关闭扩展功能
这是我正在使用的示例代码:
using (var existingFileStream = new FileStream(fileNameExisting, FileMode.Open))
using (var newFileStream = new FileStream(fileNameNew, FileMode.Create))
{
// Open existing PDF
var pdfReader = new PdfReader(existingFileStream);
// PdfStamper, which will create
var stamper = new PdfStamper(pdfReader, newFileStream);
var form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;
foreach (string fieldKey in fieldKeys)
{
if (fieldKey.Equals("Retailer Name"))
form.SetField(fieldKey, retailerName);
}
// “Flatten” the form so it wont be editable/usable anymore
stamper.FormFlattening = true; …Run Code Online (Sandbox Code Playgroud) 我是iTextSharp(iText的C#版本)的新手:
我有这样的事情:
System.Drawing.Bitmap bitmap = (System.Drawing.Bitmap)ChartHelper.GetPdfChart((int)currentVuln.UrgencyRating * 10);
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bitmap);
vulnerabilityDetailsTable.AddCell(new PdfPCell(img) { Border = PdfPCell.RIGHT_BORDER, BorderColor = new BaseColor(79, 129, 189), BorderWidth = 1, Padding = 5, MinimumHeight = 30, PaddingTop = 10 });
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我有经典的System.Drawing.Bitmap immage命名为bitmap,我希望将它放在PDF文档表的单元格中.
问题是此行被签名为错误:
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bitmap);
Run Code Online (Sandbox Code Playgroud)
错误是:
错误75'iTextSharp.text.Image.GetInstance(iTextSharp.text.Image)'的最佳重载方法匹配有一些无效的参数c:\ Develop\EarlyWarning\public\Implementazione\Ver2\PdfReport\PdfVulnerability.cs 120 27 PdfReport
所以我认为我需要从经典的System.Drawing.Bitmap对象中获取iTextSharp.text.Image对象.
我该怎么办呢?我疯狂地试图去做.
TNX
在生成PDF时添加"Č"或"Ć"等字符时出现问题.我主要使用段落在我的PDF报告中插入一些静态文本.这是我使用的一些示例代码:
var document = new Document();
document.Open();
Paragraph p1 = new Paragraph("Testing of letters ?,?,Š,Ž,?", new Font(Font.FontFamily.HELVETICA, 10));
document.Add(p1);
Run Code Online (Sandbox Code Playgroud)
生成PDF文件时得到的输出如下所示:"测试字母,Š,Ž,Đ"
出于某种原因,iTextSharp似乎不会识别这些字母,例如"Č"和"Ć".
我正在尝试使用FreeSpire将安全的PDF转换为XPS并返回PDF,然后使用iTextSharp将它们组合在一起.下面是我转换各种文件的代码段.
char[] delimiter = { '\\' };
string WorkDir = @"C:\Users\rwong\Desktop\PDF\Test";
Directory.SetCurrentDirectory(WorkDir);
string[] SubWorkDir = Directory.GetDirectories(WorkDir);
//convert items to PDF
foreach (string subdir in SubWorkDir)
{
string[] Loan_list = Directory.GetFiles(subdir);
for (int f = 0; f < Loan_list.Length - 1; f++)
{
if (Loan_list[f].EndsWith(".doc") || Loan_list[f].EndsWith(".DOC"))
{
Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();
doc.LoadFromFile(Loan_list[f], FileFormat.DOC);
doc.SaveToFile((Path.ChangeExtension(Loan_list[f],".pdf")), FileFormat.PDF);
doc.Close();
}
. //other extension cases
.
.
else if (Loan_list[f].EndsWith(".pdf") || Loan_list[f].EndsWith(".PDF"))
{
PdfReader reader = new PdfReader(Loan_list[f]);
bool PDFCheck = reader.IsOpenedWithFullPermissions;
reader.Close(); …Run Code Online (Sandbox Code Playgroud) 假设我使用iTextSharp加载了一个PDF文件:
PdfStamper p = GetDocument();
AcroFields af = ps.AcroFields;
Run Code Online (Sandbox Code Playgroud)
如何从文档中获取所有字段名称的列表af?
我有一个pdf文档,其中包含我用c#以编程方式填写的表单字段.根据三个条件,我需要修剪(删除)该文档中的某些页面.
这可能吗?
条件1:我需要保留第1-4页,但删除第5页和第6页
对于条件2:我需要保留第1-4页但删除5并保持6
对于条件3:我需要保留1-5页但删除6
我正在使用C#和iTextSharp为我的PDF文件添加水印:
Document document = new Document();
PdfReader pdfReader = new PdfReader(strFileLocation);
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(strFileLocationOut, FileMode.Create, FileAccess.Write, FileShare.None));
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(WatermarkLocation);
img.SetAbsolutePosition(100, 300);
PdfContentByte waterMark;
//
for (int pageIndex = 1; pageIndex <= pdfReader.NumberOfPages; pageIndex++)
{
waterMark = pdfStamper.GetOverContent(pageIndex);
waterMark.AddImage(img);
}
//
pdfStamper.FormFlattening = true;
pdfStamper.Close();
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我的问题是,在一些PDF文件中没有添加水印虽然文件大小增加,任何想法?
itextsharp ×10
c# ×9
pdf ×4
itext ×2
.net ×1
acrofields ×1
adobe ×1
asp.net ×1
fonts ×1
javascript ×1
spire.doc ×1
unicode ×1
xpsdocument ×1