0

我尝试通过 Razor 模板制作发票,并通过 chromium 将其转换为 PDF。我必须将付款表格添加到最后一页,但在常量位置。

.svg-container {
            position: absolute;
            top: 12cm;
            left: 0cm;
            left: 0px;
            width: 18cm;
            height: 10cm;
        }

<div class="svg-container">
  <svg>..</svg>
</div>

当我以这种方式付款表格 svg 在正确的位置,但在第一页并叠印发票区域时

<div style="position: relative;">  
  <div class="svg-container">
      <svg>..</svg>
    </div>
</div>

当我以这种方式付款时,付款表格在发票数据之后,但位置是可变的。我想用 top 属性计算设置绝对位置

AbsluteTop = TopOfPage + pages * PageHeigth;

但问题是获取页面计数到剃须刀代码并将顶部设置为样式=顶部:

WriteLiteral("style =\"top: " + @razorVariablePAges + ";\"")

在标题部分我使用

<span class='totalPages' style="font-family:Arial; font-size:7pt ">

但我无法将其读入剃刀变量

4

1 回答 1

0

我发现了解决方法问题。我将带有 id ="labelEnd" 的发票不可见标签放在带有 id ="blankiet" 的付款表单周围的 div 元素的末尾。然后我使用 javascipt 读取标签顶部并将顶部设置为付款表单的绝对位置。我仍然无法精确定位付款表格,他的位置取决于每页开始的高度。将 Razor/Pupetersharp 用于精确位置付款表格是否是更好的解决方案?

<code>        

     <script type="text/javascript">
    window.onload = function () {
    var nextPage = 0;
     //950 - page height in pixels 
     //450 - position of payment form where there is no place to insert payment form on last page.          
    var top = document.getElementById("labelEnd").offsetTop
            + document.getElementById("labelEnd").clientTop;
    if (top % 950 > 450) 
      nextPage = 1
    document.getElementById("blankiet").style.top = (Math.floor(top / 950) + nextPage) * 950 + 460; 

            }
    </script>

</code>
于 2020-05-19T09:25:49.720 回答