Forum How do I...?

lines as pdf rectangles

pestafo
Prince seems to create pdf rectangles for lines in xhtml documents.
With Adobe Acrobat such 'rectangle lines' change their visual thickness depending on the zoom factor. In a list of lines not all line are shown with the same thickness.

We compared two documents, one with line/ines and one with rectangle/lines. The difference on the screen is evident, line/lines behave and appear much better.

What is the reason that prince uses pdf rectangles to for lines and is there perhaps a way to force prince to produce line/lines?
mikeday
Are you referring to underlines specifically?
pestafo
We discovered this problem where table cells (td) have border-top and/or border-bottom defined (-> the table rows are separated by horizontal lines).
mikeday
There is a specific reason why Prince uses rectangles for box borders, but I'll need to go back through our archives to find out exactly what that reason is. We used to use lines, but it led to unwanted artifacts in Acrobat at some zoom levels, if I recall correctly.
pestafo
I found out that with some named colors like 'black' and 'blue' the line do not change their height on different zoom levels. With other 'mixed' colors the line height changes randomly for each line separately. Since we have a lot tables with row separation lines the resulting pdf looks ugly on the screen.

We have similar pdfs where the row separations are defined as lines in the pdf and they behave correct on zooming.

Is there perhaps a work around or the chance that you change prince to use lines instead of rectangles?

<html>
  <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
  <head>
    <title>line test</title>
    <style type="text/css">
.lineTable {
  width: 100mm;
  margin-top: 10mm;
  border-collapse: collapse;
  font-size: 6pt;
}
.lineCell, .lineCellBlack {
  border-top: 0.5pt solid cmyk(0.6,0.33,0,0.34);
  border-bottom: 0.5pt solid cmyk(0.6,0.33,0,0.34);
  line-height: 9.5pt;
}
.lineCellBlack {
  border-top-color: black;
  border-bottom-color: black;
}
	</style>
  </head>
  <body>
      <table class="lineTable">
        <tbody>
          <tr class="lineCell"><td>1</td></tr>
          <tr class="lineCell"><td>2</td></tr>
          <tr class="lineCell"><td>3</td></tr>
          <tr class="lineCell"><td>4</td></tr>
          <tr class="lineCell"><td>5</td></tr>
          <tr class="lineCell"><td>6</td></tr>
          <tr class="lineCell"><td>7</td></tr>
          <tr class="lineCell"><td>8</td></tr>
          <tr class="lineCell"><td>9</td></tr>
          <tr class="lineCell"><td>10</td></tr>
        </tbody>
      </table>
      <table class="lineTable">
        <tbody>
          <tr class="lineCellBlack"><td>A</td></tr>
          <tr class="lineCellBlack"><td>B</td></tr>
          <tr class="lineCellBlack"><td>C</td></tr>
          <tr class="lineCellBlack"><td>D</td></tr>
          <tr class="lineCellBlack"><td>E</td></tr>
          <tr class="lineCellBlack"><td>F</td></tr>
          <tr class="lineCellBlack"><td>G</td></tr>
          <tr class="lineCellBlack"><td>H</td></tr>
          <tr class="lineCellBlack"><td>I</td></tr>
          <tr class="lineCellBlack"><td>J</td></tr>
        </tbody>
      </table>
  </body>
</html>