manik dutta Ответов: 1

Я хочу преобразовать файл word в формат PDF без использования библиотеки Microsoft interop?


protected void Button1_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            string extention = Path.GetExtension(FileUpload1.PostedFile.FileName);
            if (extention.ToLower() == ".doc" || extention.ToLower() == ".docx")
            {
                string path = System.IO.Path.GetFullPath(FileUpload1.PostedFile.FileName);
                string filename = TextBox1.Text;
                FileUpload1.SaveAs(Server.MapPath("pdf\\") + filename);
                ConvertTopdf(path, filename);
                Label1.Text = "File upload Successfull";
            }
            else
            {
                Label1.Text = "Please Select the word file only";
            }
        }
        else
        {
            Label1.Text = "Please Selet the File";
        }
    }
    public void ConvertTopdf(string path, string filename)
    {
        SautinSoft.UseOffice u = new SautinSoft.UseOffice();
        if (u.InitWord() == 0)
        {
            //convert Word (RTF, DOC, DOCX to PDF)
            u.ConvertFile(path, Server.MapPath("pdf\\") + filename, SautinSoft.UseOffice.eDirection.DOC_to_PDF);
        }
        u.CloseOffice();
    }


Что я уже пробовал:

охраняемых недействительными обработчика button1_click(объект отправителя, EventArgs в электронной)
{
если (FileUpload1.HasFile)
{
строки удлинитель = путь.GetExtension(FileUpload1.PostedFile.имя файла);
если (расширение.Нижестоящим() == ".док" || расширение.Нижестоящим() == ".файлы DOCX")
{
string путь = система.ИО.Путь.GetFullPath(FileUpload1.PostedFile.имя файла);
string filename = TextBox1. Text;
FileUpload1.Сохранить Как(Сервер.MapPath ("pdf\\") + имя файла);
ConvertTopdf(путь, имя файла);
Этикетка 1.Text = " успешная загрузка файла";
}
ещё
{
Этикетка 1.Text = " Пожалуйста, выберите только файл word";
}
}
ещё
{
Этикетка 1.Text = " Пожалуйста, выберите Файл";
}
}
public void ConvertTopdf(string path, string filename)
{
SautinSoft.UseOffice u = новый SautinSoft.UseOffice();
if (u. InitWord() == 0)
{
// преобразование Word (RTF, DOC, DOCX в PDF)
у.ConvertFile(путь, сервер.MapPath ("pdf\\") + filename, SautinSoft.UseOffice.эдирекция.DOC_to_PDF);
}
у.CloseOffice();
}

Animesh Datta

в чем проблема ?

1 Ответов

Рейтинг:
2

Sergey Alexandrovich Kryukov

Конечно, использование Office interop было бы плохим решением. Лучше использовать Microsoft Open XML SDK:
https://msdn.microsoft.com/en-us/library/office/bb448854.aspx,
https://www.microsoft.com/en-us/download/details.aspx?id=30425.

Это одна из альтернатив с открытым исходным кодом: NPOI.

Это набор ссылок на библиотеки PDF, которые вы можете использовать: http://csharp-source.net/open-source/pdf-libraries.

См. также мои прошлые ответы:
Вопрос преобразование word в PDF без office или open office,
Как добавить библиотеку объектов microsoft excel 15.0 из Add Reference в MS Visual Studio 2010[^].

—СА