theunreal

ItextSharp Fontregister und Aufbau

Hallo zusammen,

mein Script wächst und wäscht und mein Lernkurve geht recht steil. Aber grad, wenn man sich etwas selbst beibringt helfen die Antworten bei Google leider nicht immer weiter.
Die Ursache liegt manchmal natürlich auch 60 cm vor dem Bildschirm...

Ich habe eine Frage zur FontFabric:

Ich möchte meiner PDF ein Barcode mit der Schriftart "Free 3 of 9" zufügen. Ich habe in der ItextDoku und auf Reddit nachgelesen, dass ich die Schriftart registrieren muss :
Itext Doku

$bcFont = [iTextSharp.text.FontFactory]::Register("C:\Windows\Fonts\FRE3OF9X.TTF","FRE3OF9X")  
$Barcode =[iTextSharp.text.Chunk]::new("$Script:CaseNo`r`n")  
$Barcode.Font = [iTextSharp.text.FontFactory]::GetFont($bcFont, 40, [iTextSharp.text.Font]::NORMAL, [iTextSharp.text.BaseColor]::$Color)
#oder auch 
$Barcode.Font = [iTextSharp.text.FontFactory]::GetFont("FRE3OF9X", 40, [iTextSharp.text.Font]::NORMAL, [iTextSharp.text.BaseColor]::$Color)  
 

$Barcode wird dann einem ColumnText zugefügt. Aber er fällt dennoch auf meine Basefont zurück. $Bacode.Font ist unknown, was mache ich verkehrt?

Und dann, wenn ich 4 Zeilen untereinander habe und die jeweils obere BOLD machen möchte, muss ich dann tatsächlich jeden Textchunk einzeln zuweisen, oder gibt es da was eleganteres?

Danke für eure Unterstützung !

Gruß Sascha
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 851126977

Url: https://administrator.de/forum/itextsharp-fontregister-und-aufbau-851126977.html

Ausgedruckt am: 26.04.2025 um 05:04 Uhr

colinardo
Lösung colinardo 29.06.2021 aktualisiert um 12:34:10 Uhr
Goto Top
Servus Sascha,
Wozu extra nen Font für den Barcodetyp "3 of 9" einbinden? iText unterstützt diesen Barcodetyp von Haus aus face-smile
https://api.itextpdf.com/iText5/java/5.5.13.2/com/itextpdf/text/pdf/Barc ...
$b = $writer.DirectContent
$bc = New-Object iTextSharp.text.pdf.Barcode39
$bc.Code = "HALLO WIE GEHTS"
$bc.BarHeight = 50
$bc.Font = [iTextSharp.text.pdf.BaseFont]::CreateFont([iTextSharp.text.pdf.BaseFont]::COURIER,[iTextSharp.text.pdf.BaseFont]::CP1252,$false)
$img = $bc.CreateImageWithBarcode($b,[System.Drawing.Color]::Black,[System.Drawing.Color]::Black)
$img.SetAbsolutePosition(20,20)
$b.AddImage($img)

Und dann, wenn ich 4 Zeilen untereinander habe und die jeweils obere BOLD machen möchte, muss ich dann tatsächlich jeden Textchunk einzeln zuweisen, oder gibt es da was eleganteres?
Ein Template-Object z.B.
https://api.itextpdf.com/iText5/java/5.5.13.2/com/itextpdf/text/pdf/PdfT ...

Grüße Uwe
TheUnreal
TheUnreal 29.06.2021, aktualisiert am 01.07.2021 um 10:25:54 Uhr
Goto Top
Hallo Uwe,

danke für die Hilfe, das funktioniert (natürlich) wunderbar.
Ich gestehe aber, dass ich nicht im Traum auf diese Lösung gekommen wäre face-sad

Aber dank https://www.mikesdotnetting.com/article/81/itextsharp-working-with-fonts verstehe ich nun mehr über die FontFactory.
Und so langsam ist dann auch (endlich) mal der Groschen gefallen.
Ich mache es nun doch so, wie ursprünglich geplant :

$font = [iTextSharp.text.pdf.BaseFont]::createFont("$PSScriptRoot\bin\Fonts\FRE3OF9X.TTF", [iTextSharp.text.pdf.BaseFont]::CP1252, [iTextSharp.text.pdf.BaseFont]::EMBEDDED)  
$free9of3 = New-Object iTextSharp.text.Font ($font,35)
$Text.Font = $free9of3
$colText.AddElement($Text)