java生成pdf文件设置td宽度_以NReco为单位设置页面大小(WkHtmlToPdf)

本文介绍了如何使用Java和NReco库生成PDF文件,特别是针对固定尺寸的处方单。通过设置`PageHeight`、`PageWidth`、`CustomWkHtmlArgs`以及`Margins`属性,确保了页面大小和td宽度的准确控制。同时,通过`--disable-smart-shrinking`选项解决了尺寸调整问题,并利用HTML视图和`ViewContext`生成HTML内容,最终将其转换为PDF。
摘要由CSDN通过智能技术生成

快速回答您的问题是肯定的,当您使用height和width属性时,设置在mm中,所以您在做什么对于C#代码是正确的,您的尺寸问题是转换器采用了“智能”大小调整技术默认。这个比例是正确的,但减少的尺寸与我的问题完全相同,这是通过包含--disable-smart-shrinking选项解决的。

如需更全面的照片: 我刚刚完成了一项直接从新Razor应用程序获得处方打印的步骤,这些PDF是通过NReco包装生成的。我必须打印一张固定的处方单(215毫米x 176毫米),并在其周围留有一点空白。这是我在控制器中获得的代码,它返回pdf作为fileResult变量。

public async Task OutputScript(int? id)

{

if (id == null)

{

return new HttpStatusCodeResult(HttpStatusCode.BadRequest);

}

var model = await GetViewModelForScript(id.Value);

if (model == null)

{

return HttpNotFound();

}

// create a string writer to receive the HTML code

StringWriter stringWriter = new StringWriter();

// get the view to render

ViewEngineResult viewResult = ViewEngines.Engines.FindView(ControllerContext, "Script", null);

// create a context to render a view based on a model

ViewContext viewContext = new ViewContext(

ControllerContext,

viewResult.View,

new ViewDataDictionary(model),

new TempDataDictionary(),

stringWriter

);

// render the view to a HTML code

viewResult.View.Render(viewContext, stringWriter);

// return the HTML code

string htmlToConvert = stringWriter.ToString();

// instantiate the HTML to PDF converter

HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();

htmlToPdfConverter.CustomWkHtmlArgs = " --print-media-type --title \"SMS Script " + model.ScriptID + "\" --dpi 300 --disable-smart-shrinking";

htmlToPdfConverter.PageHeight = 215;

htmlToPdfConverter.PageWidth = 176;

var margins = new PageMargins();

margins.Bottom = 4;

margins.Top = 4;

margins.Left = 5;

margins.Right = 5;

htmlToPdfConverter.Margins = margins;

htmlToPdfConverter.Orientation = PageOrientation.Landscape;

// render the HTML code as PDF in memory

byte[] pdfBuffer = htmlToPdfConverter.GeneratePdf(htmlToConvert);

// send the PDF file to browser

FileResult fileResult = new FileContentResult(pdfBuffer, "application/pdf");

fileResult.FileDownloadName = "Script.pdf";

return fileResult;

}

现在所有@media print指令得到遵守,隐藏,显示当上打印生成PDF屏幕“预览”标签的方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值