تبدیل PDF به Word با استفاده از #C

پنجشنبه 25 تیر 1394

در این مقاله نحوه خواندن یک فایل PDF و همچنین چگونگی تبدیل آن به Word را خواهید آموخت. برای انجام این کار از 2 فایل DLL با نام های PdfBox و DocX استفاده می شود.

تبدیل PDF به Word با استفاده از #C

1- pdfBox : از این Nuget Package برای خواند فایل PDF استفاده خواهد شد.

2- DocX : از این Nuget Package برای نوشت فایل Word استفاده خواهد شد.

گام اول :


در ابتدا یک پروژه ساخته (در اینجا یکAsp Webform ساختیم) و مانند زیر روی نام پروژه کلیک راست کرده و گزینه Manage nuget packages را انتخاب می نماییم.

سپس کلمه pdfBox را جستجو می کنیم :


پس از پیدا کردن این فایل آن را نصب می کنیم.

گام دوم

حالا با دستورات زیر DLL با نام pdfBox را به فایل cs. اضافه می کنیم :

    using org.apache.pdfbox.pdmodel;  
    using org.apache.pdfbox.util;  

اگر دستورات بالا اضافه نشوند شما قادر به خواند فایل PDF نخواهید بود.

گام سوم

در این مرحله مانند مرحله اول DLL با نام DocX را در پروژه نصب می کنیم.

با اضافه کردن DLL ها reference های زیر به پروژه اضافه می شوند :


گام چهارم

حالا با دستورات زیر DLL با نام DocX را به فایل cs. اضافه می کنیم :

using org.apache.pdfbox.pdmodel;  
using org.apache.pdfbox.util; 

گام پنجم

کدهای زیر را در Webform1.aspx کپی نمایید :

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="PdfToWordExample.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:FileUpload runat="server" ID="fuloadpdf" />
        <br/>
        <br/>

        <asp:Button ID="btnConvertPdf" runat="server" OnClick="btnConvertPdf_OnClick" Text="تبدیل"></asp:Button>

        <br />
        <br />
        <h3>
            <a href="http://barnamenevisan.org">مرجع تخصصی برنامه نویسان</a>
        </h3>
    </form>
</body>
</html>

گام پنجم

در نهایت کدهای زیر را در Webform1.aspx.cs کپی نمایید :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using org.apache.pdfbox.pdmodel;
using org.apache.pdfbox.util;
using Novacode;
using System.Diagnostics; 

using Novacode;
using System.Diagnostics;
using System.IO;

namespace PdfToWordExample
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void btnConvertPdf_OnClick(object sender, EventArgs e)
        {
            if (fuloadpdf.HasFile)
            {
                PDDocument doc = null;
                
                string filenm = Guid.NewGuid().ToString().Replace("-", "");
                fuloadpdf.SaveAs(Server.MapPath("/docs/" + filenm + Path.GetExtension(fuloadpdf.FileName)));
                doc = PDDocument.load(Server.MapPath("/docs/" + filenm + Path.GetExtension(fuloadpdf.FileName)));
                PDFTextStripper textStrip = new PDFTextStripper();
                string srtPDFText = textStrip.getText(doc);
                doc.close();

                string fn = Server.MapPath("/docs/" + filenm+".doc");
                var wordDoc = DocX.Create(fn);

                wordDoc.InsertParagraph(srtPDFText);
                wordDoc.Save();

                Process.Start("WINWORD.EXE", fn);

            }

        }
    }
}

آموزش سی شارپ

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 2k بازدید
  • 6 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید