私は次のバーコード画像を持っています:
次のiTextSharpVB.NETスクリプトを使用して、このバーコードを含むPDFドキュメントを生成しています。
Dim pdfDocument As iTextSharp.text.Document = Nothing
Dim filename As String = HttpContext.Current.Server.MapPath("barcode.pdf")
pdfDocument = New iTextSharp.text.Document()
Dim writer As iTextSharp.text.pdf.PdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDocument, New FileStream(filename, FileMode.Create))
pdfDocument.Open()
Dim cb As iTextSharp.text.pdf.PdfContentByte = writer.DirectContent
pdfDocument.NewPage()
Dim img As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(HttpContext.Current.Server.MapPath("barcode.jpg"))
pdfDocument.Add(img)
pdfDocument.Close()
Dim fInfo As New FileInfo(filename)
Dim numBytes As Long = fInfo.Length
Dim fStream As New FileStream(filename, FileMode.Open, FileAccess.Read)
Dim br As New BinaryReader(fStream)
Dim data As Byte() = br.ReadBytes(CInt(numBytes))
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.AddHeader("Content-Type", "binary/octet-stream")
HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("attachment; filename=barcode.pdf;size ={0}", data.Length.ToString()))
HttpContext.Current.Response.Flush()
HttpContext.Current.Response.BinaryWrite(data)
HttpContext.Current.Response.Flush()
HttpContext.Current.Response.End()
ただし、このPDFが生成されると、画像が予想よりも大きく表示され、歪んでしまいます。
画像を特定のサイズに設定しているところがどこにも見えないのに、なぜこのように歪むのでしょうか。そして、どうすればそれを防ぐことができますか?
この画像は、バーコードスキャナーで読み取れるように、意図したサイズのままであることが重要です。