Asp.net mvc Rotativa视图ASPDF CSS大小/尺寸

Asp.net mvc Rotativa视图ASPDF CSS大小/尺寸,asp.net-mvc,asp.net-mvc-4,rotativa,Asp.net Mvc,Asp.net Mvc 4,Rotativa,我正在使用Rotativaviewspdf方法将ASP.NETMVC中的HTML视图呈现为PDF。我通过设置以下内容将输出设置为A4大小、纵向且无边距: new ViewAsPdf(MVCCfpFormatter.Members.Views.FlightPlansFullPagePrint, model) { // FileName = flightPlan.ListingItemDetailsModel.Fl

我正在使用Rotativa
viewspdf
方法将ASP.NETMVC中的HTML视图呈现为PDF。我通过设置以下内容将输出设置为A4大小、纵向且无边距:

new ViewAsPdf(MVCCfpFormatter.Members.Views.FlightPlansFullPagePrint, model)
                    {
                       // FileName = flightPlan.ListingItemDetailsModel.FlightDetails + ".pdf",
                        PageSize = Size.A4,
                        PageOrientation = Orientation.Portrait,
                        PageMargins = new Margins(0, 0, 0, 0),
                        PageWidth = 210,
                        PageHeight = 297
                    };
然后在CSS中,我将一个元素的宽度设置为
210mm
width,它应该扩展页面的整个宽度,但是在输出PDF中,
210mm
width并不代表PDF的整个宽度,而是更小。通过反复试验,生成的PDF的总宽度似乎在
246mm左右


你知道为什么会这样吗?

我想我可以帮你

 {
               FileName = Name + ".pdf",
               PageOrientation = Rotativa.Options.Orientation.Landscape,
               PageSize = Rotativa.Options.Size.A4

 }

这就是1.6.3对我有效的地方。我想你需要按照这个语法来设置你想要的其他东西。

如果你仍然有问题,我对rotativa做了更多的研究。您可以使用wkhtmltopdf中的自定义开关。尝试添加

CustomSwitches = "--disable-smart-shrinking". 

这会阻止程序自动调整您的物品大小。从这里,您可以正确地调整html页面,以获得您想要的pdf大小。

如果您使用的是mvc 4,则应使用此格式

         public ActionResult yourAction()
      {

       var yourModel;


        var yourpdf= new PartialViewAsPdf(yourModel)
        {
            RotativaOptions = new DriverOptions()
            {
                PageOrientation=Orientation.Landscape,
                PageSize = Size.A4,
                IsLowQuality=true
                and other your Customiz

            }
        };
        return yourpdf;

    }

在进行任何操作之前,请不要忘记添加

using Rotativa.MVC;
using Rotativa;
对于使用自定义选项,请执行以下操作

  return new ActionAsPdf
                ("ActionName")
                {
                    FileName = "Filename.pdf",
                    RotativaOptions = new Rotativa.Core.DriverOptions()
                    {
                        PageSize=Rotativa.Core.Options.Size.A4,
                    }
                   
                };

什么意思?这不是和我上面展示的一样的语法吗,只是使用完整的名称空间,
Rotativa.Options…
?是的,我的意思是如果不使用完整的名称空间,我就无法正常工作。如果这无助于解决您的问题,那么听起来它可能存在于您的CSS?我的完整名称空间中,其中包括使用顶部的
关键字,我在这里没有包括这些关键字。当你尝试你的方法时,它在正确的给定尺寸下工作得很好吗?是的,它工作得很好。也许试着像我一样设置页面大小,看看你得到了什么?我还没有尝试打印出pdf,但在reader中它的格式非常完美。你做了与我做的相同的事情@user2612373,所以它将输出相同的结果。你能不能像我之前的问题中所问的那样,用精确正确的尺寸试一下?你已经有了这个问题的答案!您应该编辑现有答案,而不是发布新答案。我将在@user2612373处试用,并告诉您结果,谢谢你的评论。尝试过这个,但在尝试通过css正确定位项目时,仍然会留下半英寸的差异。在呈现页面之前,你是否确保没有其他css或脚本修改页面?我似乎可以让它为我的申请工作良好。谢谢你的回复,这是非常有帮助的。我有关于Unicode的问题,当生成PDF时,一些Unicode被破坏了。你知道吗?