嘿伙计我有这个字节数组我想转换为pdf并使其可供下载.任何人都知道如何做到这一点?
这是我的动作控制器
public ActionResult DownloadLabTestResult(string labTestResultID)
{
PdfReader pdfReader = new PdfReader("Xue_Tang.pdf");
MemoryStream stream = new MemoryStream();
PdfStamper stamper = new PdfStamper(pdfReader, stream);
pdfReader.Close();
stamper.Close();
stream.Flush();
stream.Close();
byte[] pdfByte = stream.ToArray();
// So i got the byte array of the original pdf at this point. Now how do i convert this
// byte array to a downloadable pdf? i tried the method below but to no avail.
MemoryStream ms = new MemoryStream(pdfByte);
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=labtest.pdf");
Response.Buffer = true; …Run Code Online (Sandbox Code Playgroud) 我在vb.net上使用itextsharp从pdf文件中获取文本内容.该解决方案适用于某些文件,但不适用于其他甚至非常简单的文件.问题是令牌字符串值设置为null(一组空方框)
token = New iTextSharp.text.pdf.PRTokeniser(pageBytes)
While token.NextToken()
tknType = token.TokenType()
tknValue = token.StringValue
Run Code Online (Sandbox Code Playgroud)
我可以确保内容的长度,但我无法获得实际的字符串内容.
我意识到这取决于pdf的字体.如果我使用Acrobat或带有Courier的PdfCreator创建一个pdf(顺便说一句,这是我的visual studio编辑器中的默认字体),我可以获得所有文本内容.如果使用不同的字体构建相同的pdf,我得到空的方框.
现在的问题是,无论字体设置如何,我如何提取文本?
谢谢
任何人都可以建议我为iTextSharp提供一本好书或API文档,我在理解lib时一直在努力,并采用了一种非常刺激和耗时的热门和尝试方法.
我有一个PDF文件,我正在使用ITextExtractionStrategy.Now从字符串中读取字符串我正在采用子字符串My name is XYZ,需要从PDF文件中获取子字符串的矩形坐标但不能这样做.在googling我知道那个LocationTextExtractionStrategy,但没有得到如何使用该工具来获取坐标.
这是代码..
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
text.Append(currentText);
string getcoordinate="My name is XYZ";
Run Code Online (Sandbox Code Playgroud)
如何使用ITEXTSHARP获取此子字符串的直角坐标..
请帮忙.
我有一个从扫描软件生成的pdf.pdf每页有1个TIFF图像.我想从每个页面中提取TIFF图像.
我正在使用iTextSharp并且我已经成功找到了图像,并且可以从该PdfReader.GetStreamBytesRaw方法中获取原始字节.问题是,正如我之前发现的那样,iTextSharp不包含PdfReader.CCITTFaxDecode方法.
还有什么我知道的?即使没有iTextSharp,我也可以在记事本中打开pdf并找到流,/Filter /CCITTFaxDecode我知道/DecodeParams它正在使用CCITTFaxDecode组4.
有没有人知道如何从我的pdf中获取CCITTFaxDecode过滤图像?
干杯,卡胡
我有一个嵌入了PDF表单字段的模板PDF文件.我正在使用PdfStamper来填写这些字段.另外,我希望能够更改生成的PDF的边距.有什么办法可以修改加盖PDF的页边距吗?
如何使用iTextSharp更改PDF字体或段落的行高?
我有一个byte []列表,我希望将其连接成一个字节[],这将是最终的PDf.
在"page = copy.GetImportedPage(new PdfReader(p),i);"我得到一个"对象引用未设置为实例错误.
我不知道发生了什么,我已经检查了每个对象,并且没有空.
关于这个的任何想法,或另一段可以成功的代码?!
我有这个方法:
编辑
public static byte[] concatAndAddContent(List<byte[]> pdf)
{
byte [] todos;
using(MemoryStream ms = new MemoryStream())
{
Document doc = new Document();
doc.Open();
PdfCopy copy = new PdfCopy(doc, ms);
PdfCopyFields copy2 = new PdfCopyFields(ms);
PdfReader reader;
foreach (byte[] p in pdf)
{
reader = new PdfReader(p);
int pages = reader.NumberOfPages;
// loop over document pages
for (int i = 1; i < pages; i++)
{
PdfImportedPage page = copy.GetImportedPage(reader, i);
PdfCopy.PageStamp stamp …Run Code Online (Sandbox Code Playgroud) 我需要将几个(阅读:大量)PDF文件发布到网上,但其中许多都有硬编码的文件://链接和非公共位置的链接.我需要阅读这些PDF并更新指向正确位置的链接.我已经开始使用itextsharp编写应用程序来读取目录和文件,找到PDF并遍历每个页面.我接下来要做的是找到链接,然后更新不正确的链接.
string path = "c:\\html";
DirectoryInfo rootFolder = new DirectoryInfo(path);
foreach (DirectoryInfo di in rootFolder.GetDirectories())
{
// get pdf
foreach (FileInfo pdf in di.GetFiles("*.pdf"))
{
string contents = string.Empty;
Document doc = new Document();
PdfReader reader = new PdfReader(pdf.FullName);
using (MemoryStream ms = new MemoryStream())
{
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
doc.Open();
for (int p = 1; p <= reader.NumberOfPages; p++)
{
byte[] bt = reader.GetPageContent(p);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
坦率地说,一旦我获得了页面内容,我就相当迷失于iTextSharp.我已经阅读了sourceforge上的itextsharp示例,但实际上并没有找到我想要的内容.
任何帮助将不胜感激.
谢谢.
我正在创建一个仅包含文本的PDF文档,其中所有文本都是相同的磅值和字体系列,但每个字符可能是不同的颜色.使用下面的代码片段似乎一切正常,但行之间的默认空间略大于我认为的理想值.有没有办法控制这个?(仅供参考,在下面的代码中键入"ColoredText"只包含一个字符串及其颜色.另外,我分别处理换行符的原因是,由于某种原因,如果它在一个Chunk中,它不会导致换行.)
谢谢,雷
List<byte[]> pdfFilesAsBytes = new List<byte[]>();
iTextSharp.text.Document document = new iTextSharp.text.Document();
MemoryStream memStream = new MemoryStream();
iTextSharp.text.pdf.PdfWriter.GetInstance(document, memStream);
document.SetPageSize(isLandscape ? iTextSharp.text.PageSize.LETTER.Rotate() : iTextSharp.text.PageSize.LETTER);
document.Open();
foreach (ColoredText coloredText in coloredTextList)
{
Font font = new Font(Font.FontFamily.COURIER, pointSize, Font.NORMAL, coloredText.Color);
if (coloredText.Text == "\n")
document.Add(new Paragraph("", font));
else
document.Add(new Chunk(coloredText.Text, font));
}
document.Close();
pdfFilesAsBytes.Add(memStream.ToArray());
Run Code Online (Sandbox Code Playgroud)