asp.net 为什么从剃须刀到pdf文档的转换与网站显示的不一样?

6rqinv9w  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(140)

我使用rotativa转换我的剃刀查看pdf文档,但有问题,它看起来不一样,当它渲染到网站这里是我的剃刀代码

@model PieListViewModel

@{
    Layout = null;
}

<link href="@("https://" + Context.Request.Host.ToString() + "/css/site.css")" rel="stylesheet" />
<link href='https://fonts.googleapis.com/css?family=Work+Sans' rel='stylesheet' type='text/css'>
@* http://localhost:port/StyleSheet.css *@

<div class="container">
  <div class="grid">
    <div class="Weight border-left border-bottom">
      <span class="margin-left">Id</span>
    </div>
    <div class="Weight border-left border-bottom">
      <span class="margin-left">Name</span>
    </div>
    <div class="Weight border-left border-bottom">
      <span class="margin-left">Price</span>
    </div>
    <div class="Weight border-left border-bottom">
      <span class="margin-left">Actions</span>
    </div>
        @foreach (var pie in Model.Pies)
        {

                <div class="Weight border-left border-bottom">
                  <span class="margin-left">@pie.PieId</span>
                </div>
                <div class="Weight border-left border-bottom">
                 <span class="margin-left">@pie.Name</span>
                </div>
                <div class="Weight border-left border-bottom">
                 <span class="margin-left">@pie.Price</span>
                </div>
                <div class="border-bottom weight border-left" >
                    <a asp-controller="Pie" asp-action="Details" asp-route-id="@pie.PieId" class="actions ">Details</a>
                    <a asp-controller="Pie" asp-action="EditPie" asp-route-pieId="@pie.PieId" class="actions">Edit</a>
                    <a class="actions">Delete</a>
                 </div>
                     
        }
  </div>
  
    
</div>

css代码

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

.border-bottom {
    border-bottom: solid 0.1rem rgb(142, 139, 139);
}
.container {
  width: auto;
  margin: 2rem 1rem;
}
.grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 2fr;
    justify-items: center;
}
.Weight {
  font-weight: 80%;
}
.border-left {
  border-left: solid 0.1rem rgb(142, 139, 139);
  width:100%;
  text-align:center;
}
.margin-left {
  margin-left: 0.5rem;
}
.actions {
  display: inline-block;
  color: rgb(241, 160, 7);
  text-decoration: underline;
}

网站图片

PDF渲染图像

它应该是相同的网站
111 1111 11111 111111 1111111 11111111 111111111 1111111111 11111111111

anhgbhbe

anhgbhbe1#

我没有使用过rotativa,但使用过其他有类似困难的HTML-to-PDF产品。根据我的经验,转换器产品无法找到外部CSS文件。可能是rotativa找不到您的site. css文件。
这里有一些可以尝试的方法。
注解掉包含外部site. css文件的<link>元素,并将其CSS直接嵌入Razor视图中。如果rotativa正确地呈现了PDF,那么rotativa可能无法更早地找到您的CSS文件。然后取消注解<link>,删除嵌入的CSS,并验证<link>href属性中动态构建的路径是rotativa可以访问的。
如果仍然不起作用,请查看rotativa是否有任何文档解释缺少样式时该怎么做。在我使用的一个HTML-to-PDF产品上,该产品需要一个<base>元素来查找外部CSS文件。

相关问题