-1

我想在 C# 中将 xml 文件转换为 pdf 文件。

这是我的代码。

private void printAllDataReceiveToolStripMenuItem_Click(object sender, EventArgs e)
    {            
        // Load the FO style sheet.
        XslCompiledTransform xslt = new XslCompiledTransform();
        xslt.Load("bookFo.xsl");

        // Execute the transform and output the results to a file.
        xslt.Transform("books.xml", "books.fo");
    }
    private void GeneratePDF(string foFile, string pdfFile)
    {
        FileInputStream streamFO = new FileInputStream(foFile);
        InputSource src = new InputSource(streamFO);
        FileOutputStream streamOut = new FileOutputStream(pdfFile);
        Driver driver = new Driver(src, streamOut);
        driver.setRenderer(1);
        driver.run();
        streamOut.close();
    }

但是,FileInputStream、InputSource 和 FileOutputStream 显示错误

找不到类型或命名空间名称“FileInputStream”、InputSource、FIleOutputStream(您是否缺少 using 指令或程序集引用?)

这就是我导入东西的方式(我不知道它的正确术语)

    using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Timers;
using System.Net.Sockets;
using System.Threading;
using System.Net;

//add data to xml
using System.Xml;
using System.Xml.Linq;
//convert to pdf
using System.Xml.Xsl;
using System.Xml.XPath;


using System.IO;

我一直在互联网上搜索,它说我应该添加这个。

using org.apache.fop;
using org.apache.fop.apps;
using org.apache.fop.tools;
using org.xml.sax;
using java.io;

即使我正在使用它,它也会说使用指令或程序集引用缺少相同的错误。谁能帮我这个?

4

3 回答 3

0

您可能还需要 dll;我发现这篇文章的答案标记为正确。它解释了如何生成 dll:在 .NET 应用程序中使用 ApacheFOP v1.0

于 2012-08-02T09:22:22.063 回答
0

FileInputStream是一个java类。 java.io是一个 java 命名空间。您不能在 .NET 中明智地使用这些。您似乎在混合平台,这就是您遇到问题的原因。

FileInputStream.NET 中的近似等价物可能是StreamReader; 供FileOutputStream使用StreamWriter。我不确定InputSource在做什么,所以我无法在那里提供解决方案。

如果您需要更多帮助,您可能应该包括您正在使用的第 3 方库(因为Driver不是标准类)以及您引用的网站的详细信息,因为添加java.io.NET 应用程序不太可能在大多数情况下工作...

于 2012-08-02T09:31:33.053 回答
0

vjslib.dll 不适用于 .NET Framework 4.0。以下是详细信息:msdn 详细信息

如果您希望您的应用程序正常工作,请将目标框架更改为 .Net Framework 3.0 或 2.0

于 2013-04-17T13:03:40.777 回答