1

ASP.NET / Mono MVC2 アプリケーションを使用して、請求書、注文書、およびその他のドキュメントを PDF 形式で作成し、郵送します。

すべての顧客は、ドキュメント内のさまざまなドキュメント レイアウトとロゴを必要としています。

このレイアウトは簡単にカスタマイズできます。

フリーソフトウェアを使用してこれを実装する方法は? アプリケーションにレポート ジェネレーターなどがあるはずです。また、設計されたレイアウトからロゴ付きの pdf ファイルを作成する方法もあります。

4

1 に答える 1

1

私にも同じニーズがあり、これに対する理想的な解決策を見つけるのに本当に苦労しました。私は現在iTextSharpを使用していますが、これは人気のある選択肢のようです。HTMLページをPDFとしてレンダリングできます。私はそれがcssスタイルのサポートを制限していることを発見しました。それはあなたが望むものを正確に得るのをイライラさせる可能性があります。これをMVCで使用する方法のサンプルコードを次に示します。

    public ActionResult CreatePdfFromView(YourType yourViewData)
    {
        var htmlViewRenderer = new HtmlViewRenderer();
        string htmlText = htmlViewRenderer.RenderViewToString(this, "YourViewName", yourViewData);

        byte[] renderedBuffer;

        using (var outputMemoryStream = new MemoryStream())
        {
            using (Document document = new Document())
            {
                PdfWriter writer = PdfWriter.GetInstance(document, outputMemoryStream);
                writer.CloseStream = false;
                document.Open();

                iTextSharp.text.Image pic = iTextSharp.text.Image.GetInstance(Server.MapPath("/Content/img/Your_Logo.png"));
                pic.ScaleToFit(190, 95);
                pic.SetAbsolutePosition(200, 730);
                document.Add(pic);

                try
                {
                    StringReader sr = new StringReader(htmlText);
                    XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, sr);
                }
                catch (Exception e)
                {
                    throw;
                }
            }

            renderedBuffer = new byte[outputMemoryStream.Position];
            outputMemoryStream.Position = 0;
            outputMemoryStream.Read(renderedBuffer, 0, renderedBuffer.Length);
        }

        return new BinaryContentResult(renderedBuffer, "application/pdf");
    }

HTMLWorkerの代わりにXMLWorkerHelperを使用するようにしてください。XMLワーカーは別途ダウンロードする必要があると思います。 ダウンロードページへのリンクは次のとおりです。

私が使用したもう1つのものは、Excelレポートを作成するためのもので、DoodleReportです。それははるかに簡単です。基本的に、表形式のデータダンプ。アイコンもできるかどうかわからない。

お役に立てば幸いです。誰かがより良い提案を持っているかどうかを知りたいです。

于 2013-01-04T13:19:28.537 に答える