我创建了一个简单的表格,我需要定位.有没有人对itextsharp中的表有经验?
这是我的代码
Private Sub generate_PDF()
Directory.SetCurrentDirectory("C:\Users\alexluvsdanielle\Desktop\")
Console.WriteLine("Chapter 6 example 1: Adding a Wmf, Gif, Jpeg and Png-file using urls")
Dim document As Document = New Document
Try
Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream("Chap1002.pdf", FileMode.Create))
document.Open()
'Dim wmf As Image = Image.GetInstance("harbour.wmf")
'Dim gif As Image = Image.GetInstance("vonnegut.gif")
Dim jpeg As Image = Image.GetInstance("C:\Users\alexluvsdanielle\Desktop\test.jpg")
'Dim png As Image = Image.GetInstance("hitchcock.png")
'document.Add(wmf)
'document.Add(gif)
jpeg.ScalePercent(50)
'jpeg.Alignment = Image.TOP_BORDER
jpeg.SetAbsolutePosition(0, 562)
document.Add(jpeg)
'document.Add(png)
Dim cb As PdfContentByte = writer.DirectContent
cb.BeginText()
Dim bf …Run Code Online (Sandbox Code Playgroud) 我正在尝试将数据库保存为由itextsharp生成的pdf文件.但是,到目前为止我还没有成功.
我正在使用Linq来实现sql.
这是代码:
MemoryStream ms = new MemoryStream();
Document d = new Document(PageSize.A4, 60, 60, 40, 40);
PdfWriter w = PdfWriter.GetInstance(d, ms);
w.CloseStream = false;
string txtTemplate = "";
Encoding en = Encoding.GetEncoding("iso-8859-1");
StreamReader sr = new StreamReader(HttpContext.Current.Server.MapPath("~/Content/templates/CessaoDireitosDica.txt"), en);
txtTemplate = sr.ReadToEnd();
sr.Close();
string conselhos = "";
Font font = new Font(Font.HELVETICA, 11, Font.NORMAL);
font.SetColor(0xC6, 0xC6, 0xC6);
Paragraph txtBody = new Paragraph(txtTemplate, font);
txtBody .SetAlignment(ElementTags.ALIGN_JUSTIFIED);
d.Open();
d.Add(txtBody);
d.Close();
byte[] pdfDone = ms.ToArray();
w.Flush();
ms.Flush();
ms.Close();
return pdfDone;
Run Code Online (Sandbox Code Playgroud)
它不会抛出任何错误,但它不会在DB中保存任何内容.DB字段是"图像"字段类型.我也使用这段代码动态渲染pdf(我切断了byte [] pdfDone …
对于textfield对象,我想将样式更改为粗体.我已经创建了arial字体,因为它不是BaseFont对象的默认字体.显然,TextField对象仅将BaseFont作为有效字体.我想知道如何将我分配给文本字段的字体样式更改为粗体.有没有办法做到这一点?这是我到目前为止的代码
TextField txtNewField = new TextField(stamp.Writer, new Rectangle(1, 1, 75, 25), "TxtField");
BaseFont arial = BaseFont.CreateFont(@"c:\windows\fonts\arial.ttf", BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
txtNewField.FontSize = 8;
txtNewField.Font = arial;
Run Code Online (Sandbox Code Playgroud)
先感谢您!
我想使用iTextSharp 5.0.5.但是没有找到关于这个版本的任何教程.我下载了一些以前的版本教程,但是给出了错误.我只是想通过iTextSharp将一些图像拼接成pdf文件.有人可以给我代码吗?
编辑:花了一些时间花在它上面我终于想出了如何添加图像.但问题是图像太大了.现在我的问题是如何缩小图像或我想以正常格式查看页面中的图像.现在我该怎么办?
我正在使用iTextSharp生成动态PDF文档.我需要使用我拥有许可的.ttf文件的非常特定的字体.
我可以使用代码下面的加载和使用的字体,但我更希望有字体文件在我的类库位于作为嵌入资源,而不是在磁盘上的一个特定位置的依赖.
string fontpath = Server.MapPath(".");
BaseFont customfont = BaseFont.CreateFont(fontpath + "myspecial.ttf", BaseFont.CP1252, BaseFont.EMBEDDED);
Font font = new Font(customfont, 12);
string s = "My expensive custom font.";
doc.Add(new Paragraph(s, font));
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题吗?
我正在使用iTextSharp v5.3来构建一个PDF,其中包含一个或多个具有相同单元格但由于动态内容而可能会有不同高度的表格.目前,如果a PdfPTable太大而无法放在当前页面上,则该表将被破坏,剩余的单元格数据将在下一页上结束.有没有办法告诉iTextSharp,如果表格不合适,将整个内容放在下一页?

我已经尝试过搞乱SplitRows,SplitLate但他们没有达到预期的效果.我还尝试在添加PdfPTable到文档后进行一些计算,但无法弄清楚如何在页面上获取"光标位置".我是否需要在循环中跟踪当前页面的高度并自行完成所有计算?
我们希望在发送之前在我们的pdf上添加带有用户电子邮件和姓名的水印.我已经编写了代码,并且工作得很好.我想检查这是否是最好的方法.我们希望水印在pdf的顶部分成两行.
,我使用"ShowTextAligned()"两次使用不同的"y"坐标来实现这一点.
private MemoryStream StampPdf(string pdfPath, string name, string email)
{
var memoryStream = new MemoryStream();
var reader = new PdfReader(pdfPath);
var pageCount = reader.NumberOfPages;
var stamper = new PdfStamper(reader, memoryStream);
var textAngle = 0;
var fontSize = 14;
var font = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.WINANSI, BaseFont.EMBEDDED);
var watermarkLine1 = "Personal use only for " + name;
var watermarkLine2 = "at " + email;
using (stamper)
{
for (var i = 1; i <= pageCount; i++)
{
var mediaBox = reader.GetPageSize(i);
var …Run Code Online (Sandbox Code Playgroud) 我是iText和iTextSharp(iText的C#版本)的新手,我有以下问题.
我在我的PDF中插入了一些jpg图表.这些图表由一些像这样的jpg呈现:

我以这种方式将其插入到我的PDF表中:
iTextSharp.text.Image img = null;
..........................................
..........................................
..........................................
if (currentVuln.UrgencyRating > 0)
{
img = ChartHelper.GetPdfChartV2((int)currentVuln.UrgencyRating * 10, _folderImages);
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)
这是GetPdfChartV2()方法的一部分,我在其中加载图表immage:
public static iTextSharp.text.Image GetPdfChartV2(int percentage, string _folderImmages)
{
iTextSharp.text.Image chart = null;
string folderImmages = _folderImmages;
if (percentage == 0)
{
return null;
} …Run Code Online (Sandbox Code Playgroud) 我已将4.xx的itextsharp更新为5.5.5(最新版本)但是以下行会出错:
Font heading1 = new Font(bfTimes, 16, Font.BOLD, Color.BLACK);
Run Code Online (Sandbox Code Playgroud)
错误:当前上下文中不存在名称"Color"
itextsharp.text.font.颜色从新版本中删除.
如何在新的itextsharp版本中设置颜色?
我正在使用iTextSharp产品来更改PDF属性,如下所示.我根本无法更改"PDF Producer"属性.请建议,我哪里出错了.
代码行 信息["Producer"] ="我的制作人";
没有按预期工作.
string sourcePath = tbPath.Text;
IList<string> dirs = null;
string pdfName = string.Empty;
string OutputPath = string.Empty;
DirectoryInfo di = new DirectoryInfo(sourcePath);
DirectoryInfo dInfo = Directory.CreateDirectory(sourcePath + "\\" + "TempDir");
OutputPath = Path.Combine(sourcePath,"TempDir");
dirs = Directory.GetFiles(di.FullName, "*.pdf").ToList();
for (int i = 0; i <= dirs.Count - 1; i++)
{
try
{
PdfReader pdfReader = new PdfReader(dirs[i]);
using (FileStream fileStream = new FileStream(Path.Combine(OutputPath, Path.GetFileName(dirs[i])),
FileMode.Create,
FileAccess.Write))
{
PdfStamper pdfStamper = new PdfStamper(pdfReader, fileStream);
Dictionary<string, string> info …Run Code Online (Sandbox Code Playgroud) itextsharp ×10
c# ×7
pdf ×4
asp.net ×2
itext ×1
memorystream ×1
pagination ×1
vb.net ×1
winforms ×1