2010-12-22 11 views
0

Ich schreibe eine Webanwendung, um Etiketten zu generieren. Der Etikettendrucker, den ich anvisiere, verwendet 12mm-Band und der Kunde gab an, dass er die Etiketten auf 3,25 "begrenzen möchte. Ich weiß, dass ich mit iTextSharp die Größe des Dokuments angeben kann, das ich erstellen möchte, es scheint aber so zu sein beide eine Breite und eine Höhe angeben.iTextSharp selbstexpandierende Seitenbreite

Document document = new Document(new iTextSharp.text.Rectangle(234f, 33.84f)); 

234 3,25" auf Punkte umgewandelt wird, und 33.84 ist 12 mm auf Punkte umgewandelt, so setzt dies das Dokument an die maximal zulässige Größe. Gibt es eine Möglichkeit, nur die Höhe festzulegen und das Dokument automatisch auf die Menge des Inhalts zu erweitern? Gibt es eine Möglichkeit, festzustellen, ob die erweiterte Breite des Dokuments den vom Kunden zugelassenen Maximalwert überschreitet? Vielen Dank im Voraus für jede Hilfe, die Sie anbieten können.

Antwort

0

Nein, das ist in iText nicht möglich. Auch sonst ist es keine besonders gute Idee. Wie Redman sagte, ist PDF ein druckbasiertes Format. Es ist kein HTML.

Es gibt einige Tricks, die Sie tun können, um diese zu einem gewissen Grad zu bekommen:

  1. Erstellen Sie Ihre Seite mit der maximalen gesetzlichen Höhe. 200" generic-Tag ‚um Ihre Absätze * 72 dpi = 14.400 Punkte.
  2. ein Add‘.
  3. einen Tag Ereignishandler erstellen, die verfolgt, wo der Boden des letzten Absatzes gezogen wurde.
  4. Speichern Sie die PDF.
  5. es mit einem PDFStamper
  6. die unten auf der Seite einstellen, um die Position des letzten Absatzes entspricht. Denken sie daran, öffnet wieder, dass die unten links bei 0,0 beginnt, und das oben rechts
  7. Speichern sie die endgültige PDF wird

Dieser Trick funktioniert nur, wenn Ihre Gesamtleistung weniger als 200 "hoch ist. Wenn Sie darüber reden, erhalten Sie immer noch eine zweite Seite, und Ihr "wo ist der untere ist" -Code sollte besser darauf vorbereitet sein.

PS: Ich sehe nicht, was mit mit einer Anzahl von 12 mm x 3,25" Seiten falsch ... wird nicht so perfekt die Etiketten passen sie gedruckt werden sollen

+0

Ich denke, würde die volle 12mm x 3,25 Druck? "Label wäre akzeptabel, aber auf einigen kann es erhebliche Leerzeichen geben, von denen erwartet wird, dass sie eliminiert werden, indem sie angeben, dass sie" nicht länger als 3,25 "sein dürfen." – Sean

0

Soweit ich weiß, da PDF ein Druckformat ist, müssen die Breite und Höhe des Dokuments eingestellt werden. Aus diesem Grund setzen Reporting-Tools Seitengrößen standardmäßig auf die Standardgröße der Druckerseite.

Am besten versuchen Sie, die Größe des Inhalts zu berechnen und das PDF entsprechend zu erstellen. Je nach Volumen und Art des Workflows können Sie dem Kunden eine Vorschau anzeigen, die er vor dem Drucken überprüfen kann.