0
У меня есть следующий код для объединения разных документов и создания файла pdf. Создает файлы правильно, но не показывает содержимое документа в созданном файле. Похоже, что он создает номера страниц, но я не вижу, чтобы содержимое документов было просто пустым. Что упущено здесьC# merge pdf using Spire does not write content
private void buttonAdd_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "All files (*.docx, *.pdf, *.pptx, *.pdf)| *.docx; *.pdf; *.pptx; *.xlsx";
ofd.Multiselect = true;
if (DialogResult.OK == ofd.ShowDialog())
{
string[] files = ofd.FileNames;
listBoxFiles.Items.AddRange(files);
}
}
Вот документ код Merge
private void buttonMerge_Click(object sender, EventArgs e)
{
//Convert other file formats to PDF file
string ext = string.Empty;
foreach (object item in listBoxFiles.Items)
{
ext = Path.GetExtension(item.ToString());
switch (ext)
{
case ".docx":
using (MemoryStream ms = new MemoryStream())
{
Document doc = new Document(item.ToString());
doc.SaveToStream(ms, Spire.Doc.FileFormat.PDF);
PdfFiles.Add(new PdfDocument(ms));
}
break;
case ".pdf":
PdfFiles.Add(new PdfDocument(item.ToString()));
break;
case ".pptx":
using (MemoryStream ms = new MemoryStream())
{
Presentation ppt = new Presentation(item.ToString(), Spire.Presentation.FileFormat.Auto);
ppt.SaveToFile(ms, Spire.Presentation.FileFormat.PDF);
PdfFiles.Add(new PdfDocument(ms));
}
break;
case ".xlsx":
using (MemoryStream ms = new MemoryStream())
{
Workbook xls = new Workbook();
xls.LoadFromFile(item.ToString());
xls.SaveToStream(ms, Spire.Xls.FileFormat.PDF);
PdfFiles.Add(new PdfDocument(ms));
}
break;
default:
break;
}
}
//Merge the PDF files into one PDF
PdfDocument newPdf1 = new PdfDocument();
foreach (PdfDocument doc in PdfFiles)
{
newPdf1.AppendPage(doc);
}
//Create a new PDF with specified page size, copy the content of merged file to new PDF file
PdfDocument newPdf2 = new PdfDocument();
foreach (PdfPageBase page in newPdf1.Pages)
{
PdfPageBase newPage = newPdf2.Pages.Add(PdfPageSize.A4, new PdfMargins(0));
PdfTextLayout loLayout = new PdfTextLayout();
loLayout.Layout = PdfLayoutType.OnePage;
page.CreateTemplate().Draw(newPage, new PointF(0, 0), loLayout);
}
//Save the destination PDF file
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Pdf files(*.pdf)|*.pdf";
if (DialogResult.OK == sfd.ShowDialog())
{
newPdf2.SaveToFile(sfd.FileName);
}
}
Я получаю ошибку 'result.Save (файл_вывода, Spire.Pdf.FileFormat.PDF);' вот ошибка я получаю 'CS0012 C# Тип«HttpContext»определяется в сборке на которые не ссылаются. Вы должны добавить ссылку на сборку 'System.Web, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'.' – afri
Добавьте ссылку на библиотеку System.Web, щелкнув правой кнопкой мыши проект в окне обозревателя решений, а затем нажмите Добавить ссылку в контекстном меню. В приведенном выше действии откроется диалоговое окно Add Reference и из вкладки .Net, вам нужно выбрать библиотеку System.Web и нажать OK. Если мой ответ поможет, отметьте его как ответ. Спасибо. –