Asp.net 使用Pdfclown库

Asp.net 使用Pdfclown库,asp.net,Asp.net,如何使用C#中的PDF小丑开源库将asp.net网页导出为PDF? 我已经尝试使用下面的代码,但它正在生成空的PDF文件 FileStream fs = new FileStream("C:\\Users\\IBM_ADMIN\\Desktop\\ravindra\\IDforms.pdf", FileMode.Create); org.pdfclown.bytes.Stream pdfstream = new org.pdfclown.bytes.Stream(fs); org

如何使用C#中的PDF小丑开源库将asp.net网页导出为PDF? 我已经尝试使用下面的代码,但它正在生成空的PDF文件

FileStream fs = new FileStream("C:\\Users\\IBM_ADMIN\\Desktop\\ravindra\\IDforms.pdf", FileMode.Create);
    org.pdfclown.bytes.Stream pdfstream = new org.pdfclown.bytes.Stream(fs);
    org.pdfclown.files.File pdf = new org.pdfclown.files.File();
    org.pdfclown.documents.Page page = new org.pdfclown.documents.Page(pdf.Document);
    pdf.Document.Pages.Add(page);
    //org.pdfclown.documents.contents.fonts.StandardType1Font fonts = new org.pdfclown.documents.contents.fonts.StandardType1Font; //org.pdfclown.documents.contents.fonts.StandardType1Font.FamilyEnum.Times, false, false);
    org.pdfclown.documents.contents.composition.PrimitiveComposer composer = new org.pdfclown.documents.contents.composition.PrimitiveComposer(page);
    org.pdfclown.documents.contents.composition.BlockComposer blockComposer = new org.pdfclown.documents.contents.composition.BlockComposer(composer);
    //blockComposer.Begin( org.pdfclown.documents.contents Drawing. RectangleF (230, 400, 200, 200), composition. XAlignmentEnum .Left, composition. YAlignmentEnum .Top)
    blockComposer.ShowText("This is ID Form");
    //composer.SetFont(subtitleFont, 20);
    composer.SetFillColor(org.pdfclown.documents.contents.colorSpaces.DeviceRGBColor.Black);
    blockComposer.ShowText("test");
    //blockComposer.End();
    composer.Flush();
    pdf.Save(pdfstream, org.pdfclown.files.SerializationModeEnum.Standard);
    Response.Write(page);
    Response.End();

我也有同样的问题。然后,我能够想出下面的示例代码,并想与大家分享。。。希望它能帮助别人

private void WritePDF()
{
    //  instantiate
    org.pdfclown.files.File pdfFile = new org.pdfclown.files.File();

    //  get corresponding document
    org.pdfclown.documents.Document pdfDocument = pdfFile.Document;

    //  insert contents into document
    Populate(pdfDocument);

    //  save
    System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
    org.pdfclown.bytes.Stream stream = new org.pdfclown.bytes.Stream(memoryStream);
    pdfFile.Save(stream, org.pdfclown.files.SerializationModeEnum.Standard);

    byte[] bytes = memoryStream.GetBuffer();
    Response.Buffer = true;
    Response.Clear();
    Response.ContentType = "application/pdf";
    Response.AddHeader("content-disposition", "inline; filename=PDFClown.pdf");
    Response.BinaryWrite(bytes);
    Response.Flush();
    Response.End();
}

private void Populate(org.pdfclown.documents.Document pdfDocument)
{
    //  create page
    org.pdfclown.documents.Page pdfPage = new org.pdfclown.documents.Page(pdfDocument);
    pdfDocument.Pages.Add(pdfPage);

    //  create content composer
    org.pdfclown.documents.contents.composition.PrimitiveComposer pdfComposer = new org.pdfclown.documents.contents.composition.PrimitiveComposer(pdfPage);

    //  insert contents
    pdfComposer.SetFont(new org.pdfclown.documents.contents.fonts.StandardType1Font(pdfDocument, org.pdfclown.documents.contents.fonts.StandardType1Font.FamilyEnum.Courier, true, false), 32);

    //  show text on page
    pdfComposer.ShowText("Hello World!");

    //  flush
    pdfComposer.Flush();
}