如何在ItextSharp

时间:2017-09-16 19:12:19

标签: c# itext

我尝试创建一张OMR表。为此需要一个如下设计。我用html& CSS。

enter image description here

但在iTextSharp中,它在浏览器中不能用作html。

<td style="border-width:0 2px 0 4px; border-style:solid; border-color:white; padding:0 20px;">
     <div style="height:17px; width:25px; padding:2px; float:left;">1</div>
     <div style="height:17px; width:18px; padding:2px; margin:5px 2px; float:left; text-align:center; border-radius:50px; border:1px solid black;">A</div>
     <div style="height:17px; width:18px; padding:2px; margin:5px 2px; float:left; text-align:center; border-radius:50px; border:1px solid black;">B</div>
     <div style="height:17px; width:18px; padding:2px; margin:5px 2px; float:left; text-align:center; border-radius:50px; border:1px solid black;">C</div>
     <div style="height:17px; width:18px; padding:2px; margin:5px 2px; float:left; text-align:center; border-radius:50px; border:1px solid black;">D</div>
</td>

border&amp; border-radius不起作用

我怎么能解决这个想法。 感谢

1 个答案:

答案 0 :(得分:2)

我试过这段代码:

public static final String SRC = "circle.html";
public static final String DEST = "circle.pdf";

public static void main(String[] args) throws IOException {
    LicenseKey.loadLicenseFile(System.getenv("ITEXT7_LICENSEKEY") + "/itextkey-html2pdf_typography.xml");        
    Alignment app = new Alignment();
    app.createPdf(SRC, DEST);
}

public void createPdf(String src, String dest) throws IOException {
    HtmlConverter.convertToPdf(new File(src), new File(dest));
}

文件circle.pdf看起来像这样(请注意,我将white删除为边框颜色,否则边框将不可见):

<table>
<tr>
<td style="border-width:0 2px 0 4px; border-style:solid; padding:0 20px;" colspan="3">
     <div style="height:17px; width:25px; padding:2px; float:left;">1</div>
     <div style="height:17px; width:18px; padding:2px; margin:5px 2px; float:left; text-align:center; border-radius:50px; border:1px solid black;">A</div>
     <div style="height:17px; width:18px; padding:2px; margin:5px 2px; float:left; text-align:center; border-radius:50px; border:1px solid black;">B</div>
     <div style="height:17px; width:18px; padding:2px; margin:5px 2px; float:left; text-align:center; border-radius:50px; border:1px solid black;">C</div>
     <div style="height:17px; width:18px; padding:2px; margin:5px 2px; float:left; text-align:center; border-radius:50px; border:1px solid black;">D</div>
</td>
</tr>
</table>

结果如下:

enter image description here

我认为这或多或少看起来不错,但是:

  • 如果你没有得到这个结果,你使用的是旧版iText,升级!(因为我们在旧版iText中不支持此功能,我们无意更新那些旧版本),
  • 如果,一旦您升级到使用iText 7 + pdfHTML,您对绘制“圈子”的方式不满意,请承认您创建圈子的解决方法相当差。还有其他方法可以做到这一点。您可以创建自己的ITagWorker实现,以在内容周围绘制真实圆圈,而不是使用圆角,或者,如果您有一组需要圆圈的有限字符,请使用已经使用字形的字体来自圈子。