Member 13460675 Ответов: 1

Как разделить файл word на несколько pdf файлов с помощью C#


Есть файл word.я хочу конвертировать каждую страницу файла word в разные pdf-файлы.

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

Конвертируйте каждую страницу файла word в pdf

Richard MacCutchan

В чем же вопрос?

Member 13460675

предположим, что этот код генерирует два pdf-файла.я хочу дать одному PDF-файлу имя ABC, а другой pdf-файл должен иметь имя XYZ, тогда как это сделать.

[no name]

Метод разделения всегда ставит число (стр.Count-1) в имени сгенерированного файла. Вы можете попробовать другой способ разделить документ и указать имена файлов назначения.

//load word document
Document doc = new Document("WordDocument.docx");
//save to stream in pdf file format
var stream = new MemoryStream();
doc.SaveToStream(stream, Spire.Doc.FileFormat.PDF);
//load pdf from stream
PdfDocument pdf = new PdfDocument(stream);
int pageCount = pdf.Pages.Count;
PdfPageBase page;           
string[] destFileName = new string[] { "ABC", "DEF", "GHI"};
for (int i = 0; i < pageCount; i++)
{
    PdfDocument newPdf = new PdfDocument();
    //add a page to newPdf
    page = newPdf.Pages.Add(pdf.Pages[i].Size, new Spire.Pdf.Graphics.PdfMargins(0));
    //draw content on the page
    pdf.Pages[i].CreateTemplate().Draw(page, new System.Drawing.PointF(0, 0));
    //save file with specified name
    newPdf.SaveToFile(destFileName[i]+".pdf");
}

1 Ответов

Рейтинг:
0

jekin77

Вот решение, которое сработало для меня
Этот фрагмент кода нуждается в любом объяснении, потому что он понятен.

using Word = Microsoft.Office.Interop.Word;
.
.
.
object FileName = @"c:\WordDocument.docx";
object falseValue = false; 
object missingValue = Missing.Value;
Word.Application wordApplication = new Word.Application();
Word.Document wordDocument = wordApplication.Documents.Open(ref FileName,
ref missingValue, ref missingValue, ref missingValue, ref missingValue, 
ref missingValue, ref missingValue, ref missingValue, ref missingValue, 
ref missingValue, ref missingValue, ref missingValue, ref missingValue, 
ref missingValue, ref missingValue, ref missingValue);
         
object EndOfPage = @"\page";
object wdWhat = WdGoToItem.wdGoToPage;
object wdWich = WdGoToDirection.wdGoToNext;
object count = (object)1;
int TotalPages, i;

TotalPages = wordDocument.ComputeStatistics(WdStatistic.wdStatisticPages, ref falseValue);

for (i = 1; i <= TotalPages; i++)
{
   //Select the content of actual page.
   Word.Range range  = wordDocument.Bookmarks.get_Item(ref EndOfPage).Range;
   //Export selected Range to PDF
   range.ExportAsFixedFormat(path, Word.WdExportFormat.wdExportFormatPDF);
   //Move to next Page
   range = range.GoTo(ref wdWhat, ref wdWich, ref count, ref missingValue);
   range.Select();
}