2017-05-11 16 views
1

PDF Sharpを使用して、PDFの一部を抽出しようとしています(セクションの座標は常に一定です)。それから私は粘着性のあるバックラベルに印刷するために、その部分を4 "x 6"にリサイズします。 PDFの部分をどのように抽出するのですか?これはコンソールアプリケーションC#にあります。PDFの一部を抽出する

答えて

0

ここで私はこれをやっていましたが、完璧な解決策ではありませんでした。これは私が当初計画していたPDF Sharpではなく、Spire.PDFを使用しています。出力サイズが4 "X 6"に近いという点で私はかなり運が良かった。そこで、印刷オプションに合わせて縮みを使用しました。

static void Main(string[] args) 
    { 
     ConvertPDFToBmp("FilePathOfPDF"); 

     CropAtRect("FilePathOfConvertedImage"); 

     ConvertToPDF("FilePathOfCroppedImage"); 
    } 

    public static void ConvertPDFToBmp(string filePath) 
    { 
     PdfDocument document = new PdfDocument(); 

     document.LoadFromFile(filePath); 
     Image emf = document.SaveAsImage(0, Spire.Pdf.Graphics.PdfImageType.Bitmap, 400, 400); 

     emf.Save("FilePath", ImageFormat.Jpeg); 
    } 

    public static void CropAtRect(string filePath) 
    { 
     Bitmap b = (Bitmap)Bitmap.FromFile(filePath); 
     Rectangle r = new Rectangle(new /*Where the rectangle starts*/Point(/*Width*/, /*Height*/), (new /*How big is the rectangle*/Size(/*Width*/, /*Height*/))); 
     Bitmap nb = new Bitmap(r.Width, r.Height); 
     nb.SetResolution(400, 400); //Scale to keep quality 
     Graphics g = Graphics.FromImage(nb); 
     g.DrawImage(b, -r.X, -r.Y); 

     nb.Save("FilePath", ImageFormat.Jpeg); 
    } 

    public static void ConvertToPDF(string filePath) 
    { 
     Bitmap b = (Bitmap)Bitmap.FromFile(filePath); 

     PdfDocument doc = new PdfDocument(); 

     PdfImage pdfImage = PdfImage.FromImage(b); 

     PdfUnitConvertor uinit = new PdfUnitConvertor(); 
     PdfPageBase page = doc.Pages.Add(new /*Size of PDF Page*/SizeF(585, 365), new PdfMargins(0f)); 

     page.Canvas.DrawImage(pdfImage, new /*Where the image starts*/PointF(0, 0)); 

     doc.SaveToFile("FilePath"); 
    } 
0

PDFファイルから部品を簡単に抽出する方法はありません。

考えられる回避策:ラベルサイズで新しいページを作成し、新しいページに必要な四角形が表示されるように既存のページを新しいページに描画します。

必要に応じて、白い矩形を描き、必要なセクションに含まれていないが新しいページに表示される情報を非表示にします。

関連する問題