如何将PDF文件转换为.XLS格式

时间:2015-03-23 09:56:11

标签: c# asp.net

我想使用C#在ASP.NET中将PDF文件转换为.XLS格式。有可能这样做吗?

3 个答案:

答案 0 :(得分:1)

我不清楚你到底想要实现什么,但如果我是你,我会将问题分成两部分:

  1. 如何阅读PDF文件中的内容?您可以找到一些见解here
  2. 如何在C#中创建和写入xls文件?已经有了很好的答案here
  3. 如果你问更具体的问题,你就能得到更好的答案。

答案 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工作