2016-09-30 18 views
0

私はvb.netを使用して、多数のPDFファイルを処理しているワークフローを構築しています。私がする必要があることの1つは、各PDF文書の最初のページの左下隅にバーコードを配置することです。バーコード(itextsharp)に合わせてPDF文書のページサイズを増やす

私はすでにバーコードを配置するコードを作成しましたが、問題は最初のページの既存のコンテンツをカバーできるということです。

私はバーコードを置くことができる最初のページの下部に、ページサイズを増やし、約40ピクセルの空白を追加したいと思います。しかし、私はこれを行う方法を知らない!ここで

は、既存のコードです:

Public Sub addBarcodeToPdf(byval openPDFpath as string, byval savePDFpath as string, ByVal barcode As String) 

    Dim myPdf As PdfReader 

    Try 
     myPdf = New PdfReader(openPDFpath) 
    Catch ex As Exception 
     logEvent("LOAD PDF EXCEPTION " & ex.Message) 
    End Try 

    Dim stamper As PdfStamper = New PdfStamper(myPDF, New FileStream(savePDFpath, FileMode.Create)) 

    Dim over As PdfContentByte = stamper.GetOverContent(1) 

    Dim textFont As BaseFont = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED) 
    Dim BarcodeFont As BaseFont = BaseFont.CreateFont("c:\windows\fonts\FRE3OF9X.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED) 

    over.SetColorFill(BaseColor.BLACK) 
    over.BeginText() 
    over.SetFontAndSize(textFont, 15) 
    over.SetTextMatrix(30, 3) 
    over.ShowText(barcode) 
    over.EndText() 

    over.BeginText() 
    over.SetFontAndSize(BarcodeFont, 28) 
    over.SetTextMatrix(5, 16) 
    over.ShowText("*" & barcode & "*") 
    over.EndText() 

    stamper.Close() 
    myPdf.Close() 
End Sub 

は、事前にありがとうございます! /M

+1

これは、ほぼ正確な[透かしを追加するPDFのページサイズを拡張する方法は?]のJavaの質問の重複しています(http://stackoverflow.com/questions/29775893/how-to-extend-the-page-size-of-a-pdf-to-add-a-watermark)その例のコードをVBコードに変換してください。あなたの答えがあります。この例は、[公式Webサイト](http://developers.itextpdf.com/question/how-extend-page-size-pdf-add-watermark)でも利用できます。常に最初に公式のWebサイトに相談し、理解できないことがある場合は質問をしてください。 –

答えて

0

私は正しい方向に向いてくれてありがとうございます。ボリュームテストはまだ行っていませんが、1つのPDFサンプルで動作させることができました。ちょうどメディボックスを変更するだけでは十分ではありませんでした(私はページサイズを小さくすることしかできませんでした)が、同じティムでトライボックスを変更すると、私が探していた結果が得られました。参照用

以下VBでのコードに

Dim myPdf As PdfReader 

    Try 
     myPdf = New PdfReader(openPDFpath) 
    Catch ex As Exception 
     logEvent("LOAD PDF EXCEPTION " & ex.Message) 
    End Try 

    Dim stamper As PdfStamper = New PdfStamper(myPdf, New FileStream(savePDFpath, FileMode.Create)) 

    Dim pageDict As PdfDictionary = myPdf.GetPageN(1) 
    Dim mediabox As PdfArray = pageDict.GetAsArray(PdfName.MEDIABOX) 
    Dim cropbox As PdfArray = pageDict.GetAsArray(PdfName.CROPBOX) 

    Dim pixelsToAdd As Integer = -40 

    mediabox.Set(1, New PdfNumber(pixelsToAdd)) 
    cropbox.Set(1, New PdfNumber(pixelsToAdd)) 

    stamper.Close() 
    myPdf.Close() 

おかげ /M

+1

単にボトムを-40に設定するのではなく、現在のボトム値から40を引いたほうがよいでしょう。しばしばそれは0で始まりますが、時にはそれが違うので、コードが望ましくないものになることがあります。 – mkl

関連する問題