我想使用C#在ASP.NET中将PDF文件转换为.XLS格式。有可能这样做吗?
答案 0 :(得分:1)
我不清楚你到底想要实现什么,但如果我是你,我会将问题分成两部分:
答案 1 :(得分:0)
您可以使用PdfSharp库来实现此目的。
using System;
using System.Diagnostics;
using System.IO;
using PdfSharp;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf.Advanced;
namespace WorkOnPdfObjects
{
class Program
{
static void Main()
{
const string filename = "Portable Document Format.pdf";
File.Copy(Path.Combine("../../../../../PDFs/", filename),
Path.Combine(Directory.GetCurrentDirectory(), filename), true);
PdfDocument document = PdfReader.Open(filename);
PdfDictionary dict = new PdfDictionary(document);
dict.Elements["/S"] = new PdfName("/GoTo");
PdfArray array = new PdfArray(document);
dict.Elements["/D"] = array;
PdfReference iref = PdfInternals.GetReference(document.Pages[2]);
array.Elements.Add(iref);
array.Elements.Add(new PdfName("/FitV"));
array.Elements.Add(new PdfInteger(-32768));
document.Internals.AddObject(dict);
document.Internals.Catalog.Elements["/OpenAction"] =
PdfInternals.GetReference(dict);
document.Save(filename);
Process.Start(filename);
}
}
}
我认为这应该对你有帮助。
答案 2 :(得分:0)
解决方案实际上取决于您拥有的PDF文档的复杂程度。问题是,一些PDF文件可以通过简单地按照PDF中的顺序逐个编写每个文本对象来轻松转换,但由于PDF格式设计,这个顺序不能保证与视觉外观类似。
有一些选择:
使用iTextSharp(开源)阅读PDF,然后处理PDF中的每个文本对象并根据它创建CSV输出(写下用引号括起来的每个文本对象,用逗号分隔,然后分开行换行符号)就像在这个sample code中一样。
你也可以使用Apache PDFBox(Java)的强大端口代替[PDFBox.NET]而不是3(但它需要IKVM,在.NET中实现的Java VM)
< / LI>如果是复杂的PDF文档,您可以使用专门的商业解决方案,例如ByteScout PDF Extractor SDK,旨在从PDF中将表格提取为CSV或XLS。
//披露:我为ByteScout工作