0
Ich habe den folgenden Code, um verschiedene Dokumente zusammenführen und erstellt eine PDF-Datei. Erstellt die Dateien ordnungsgemäß, zeigt aber nicht den Inhalt des Dokuments auf der erstellten Datei. Es sieht so aus, als ob es die Seitenzahlen erzeugt, aber ich kann den Inhalt der Dokumente nicht sehen. WasC# merge pdf mit Spire nicht schreiben Inhalt
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);
}
}
Hier hier verpasst wird, ist Dokument Merge Code
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);
}
}
ich Fehler 'result.Save (output, Spire.Pdf.FileFormat.PDF);' hier der Fehler i 'CS0012 C# Der Typ 'Httpcontext' erhalten wird, in einer Baugruppe definiert Das ist nicht referenziert. Sie müssen einen Verweis auf Assembly 'System.Web, Version = 4.0.0.0, Culture = Neutral, PublicKeyToken = b03f5f7f11d50a3a' hinzufügen. – afri
Fügen Sie den Verweis der System.Web-Bibliothek hinzu, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt klicken und dann auf Verweis hinzufügen klicken Option aus dem Kontextmenü. Die obige Aktion öffnet das Dialogfeld "Referenz hinzufügen" und auf der Registerkarte .Net müssen Sie System.Web library auswählen und auf OK klicken. Wenn meine Antwort hilft, bitte als Antwort markieren. Vielen Dank. –