Az ASPOSE.Words dokumentumcsere a .NET-hez
A **Aspose.Words Document Merger for .NET ** lehetővé teszi, hogy programozottan minden számú Word-kompatibilis dokumentumot csatlakoztasson egyetlen kimenetelhez, miközben formázást, stílusokat, oldalsó elrendezést, címeket / lábakat és mezőket tartson fenn.
A Windows, a Linux és a macOS rendszereken működik.Nincs Microsoft Office szükséges.
Telepítés és telepítés
- Telepítse a NuGet csomagot
Aspose.Words
. - Jelölje be a mérett licencet az alkalmazás indításában, hogy elkerülje az értékelési vízjelzőket. lásd Metered Licensing .
- Ellenőrizze a keretrendszer követelményeit a A telepítési útmutató .
Támogatott bejegyzések (választva): DOC, DOCX, DOTX/DOTM, RTF, ODT, HTML/MHTML, PDF, TXT, WordML.Támogatott kimenetek: DOCX, DOC, PDF, HTML (fixed/flow), MHTML, ODT, RTF, képek, EPUB, XPS és így tovább.
Gyors indítás: Több dokumentum hozzáadása
using Aspose.Words;
// Destination (master) document
var master = new Document();
var builder = new DocumentBuilder(master);
// Start on a clean page
builder.InsertBreak(BreakType.SectionBreakNewPage);
// Append each source with chosen import mode
ImportFormatMode mode = ImportFormatMode.KeepSourceFormatting; // or UseDestinationStyles
foreach (string path in new [] { "intro.docx", "spec.docx", "annex.rtf" })
{
var src = new Document(path);
master.AppendDocument(src, mode);
// Optional: force each source to start on a new page
builder.MoveToDocumentEnd();
builder.InsertBreak(BreakType.SectionBreakNewPage);
}
// Refresh fields (page numbers, TOC, cross‑refs)
master.UpdateFields();
master.Save("MergedOutput.pdf");
Import formátumok
- KeepSourceFormatting – megőrzi az egyes források stílusát és a közvetlen formázást (ideális a márkás bejegyzésekhez).
- UseDestinationStyles - azonos stílusneveket térképez a rendeltetési meghatározásokhoz egy egységes megjelenés érdekében.
Ellenőrzött szakasz és oldal elrendezés
Indítsa el minden dokumentumot a Új oldal , Folyamatos vagy Even/Odd Page címmel:
var sect = master.LastSection;
sect.PageSetup.SectionStart = SectionStart.NewPage; // Continuous, EvenPage, OddPage
Unify margins/page méret másolással PageSetup
A Template részből:
var template = new Document("template.docx");
var pageSetup = template.FirstSection.PageSetup;
foreach (Section s in master.Sections)
{
s.PageSetup.Orientation = pageSetup.Orientation;
s.PageSetup.PageWidth = pageSetup.PageWidth;
s.PageSetup.PageHeight = pageSetup.PageHeight;
s.PageSetup.TopMargin = pageSetup.TopMargin;
s.PageSetup.BottomMargin = pageSetup.BottomMargin;
s.PageSetup.LeftMargin = pageSetup.LeftMargin;
s.PageSetup.RightMargin = pageSetup.RightMargin;
}
Fejek, lábak és vízjelzők
Tartsa a forráskódokat / lábakat, vagy cserélje ki őket egy mestervel az egyesülés után:
// Copy headers/footers from a master template into every section
var hft = new Document("header-footer-template.docx");
foreach (Section s in master.Sections)
{
s.HeadersFooters.Clear();
s.HeadersFooters.AddClone(hft.FirstSection.HeadersFooters[HeaderFooterType.HeaderPrimary]);
s.HeadersFooters.AddClone(hft.FirstSection.HeadersFooters[HeaderFooterType.FooterPrimary]);
}
// Add a simple text watermark
foreach (Section s in master.Sections)
{
var header = s.HeadersFooters[HeaderFooterType.HeaderPrimary] ?? new HeaderFooter(master, HeaderFooterType.HeaderPrimary);
if (header.ParentNode == null) s.HeadersFooters.Add(header);
var shape = new Shape(master, ShapeType.TextPlainText)
{
RelativeHorizontalPosition = RelativeHorizontalPosition.Page,
RelativeVerticalPosition = RelativeVerticalPosition.Page,
WrapType = WrapType.None,
Rotation = -40,
Width = 400, Height = 100, Left = 100, Top = 200,
BehindText = true
};
shape.TextPath.Text = "CONFIDENTIAL";
header.AppendChild(shape);
}
mezők, keresztreferenciák és TOC
A keverés után frissítse a mezőket úgy, hogy az oldalszámok, referenciák és Tabella of Contents megfeleljenek az új elrendezésnek:
master.UpdateFields();
master.UpdatePageLayout(); // ensures accurate page count
master.UpdateTableLayout(); // improves complex table pagination
Ha egyetlen mester TOC-t tart, tegye be egyszer, és hagyja, hogy automatikusan visszaszerezze:
var b = new DocumentBuilder(master);
b.MoveToDocumentStart();
b.InsertTableOfContents("TOC \o \h \z \u"); // classic TOC switch set
master.UpdateFields();
Password-Protected Inputs & Secure Output - Jelszóvédelem
using Aspose.Words.Loading;
var load = new LoadOptions { Password = "secret" };
var protectedDoc = new Document("protected.docx", load);
master.AppendDocument(protectedDoc, ImportFormatMode.KeepSourceFormatting);
// Save encrypted PDF
using Aspose.Words.Saving;
var pdf = new PdfSaveOptions
{
EncryptionDetails = new PdfEncryptionDetails("openPwd", "ownerPwd",
PdfEncryptionAlgorithm.RC4_128)
{ Permissions = PdfPermissions.DisallowAll }
};
master.Save("MergedEncrypted.pdf", pdf);
Stream-First / Magas térfogatú áramlások
using (var output = new MemoryStream())
{
var dst = new Document();
foreach (Stream srcStream in sourceStreams)
{
using var s = srcStream; // e.g., S3/Blob stream
var src = new Document(s); // auto‑detects format
dst.AppendDocument(src, ImportFormatMode.UseDestinationStyles);
}
dst.UpdateFields();
dst.Save(output, SaveFormat.Pdf);
output.Position = 0;
// return/output stream
}
teljesítménytámogatás
- Batch hangzik a memóriában; hívás
UpdateFields()
Egyszer a végén. - Előnyben részesíti a UseDestinationStyles -t, ha több tucat bevitelt igényel.
- Dispose
Document
Korai esetek a hosszú csővezetékekben a csúcsminőség csökkentésére.
Mixed formátumok kezelése (HTML, PDF, TXT)
- HTML/MHTML : import stílusokkal és képekkel (linked vagy embedded).
- PDF : az oldalakat újraáramolt tartalmaként importálják, amennyiben lehetséges; összetett elrendezéseket a kiadás során rögzített formátumokba (például PDF) tárolnak).
- TXT : tiszta bekezdések formájában alkalmazva; a konzisztenciát követően alapstílust kell alkalmazni.
Legjobb gyakorlatok
- Előre érvényesítés a korrupció / jelszavak elkerülése érdekében részleges keverékek.
- Válassza ki **KeepSourceFormatting ** , amikor a márka hűségét érdekli; válasszon UseDestinationStyles egységes megjelenéshez.
- Írja be egy szekció szakadékot minden melléklet előtt, hogy megvédje az oldal beállítását.
- Szerkesztés után egyesítse a fejeket/ lábakat , ha egyetlen vállalati mintát szeretne.
- A mezők frissítése & TOC a végső lépés.
- Nagyon nagy csaták, osztja csoportok és egyesíti a csoportokat, hogy a memória stabil.
FAQ
**Mindegyik forrást kényszeríthetek arra, hogy egy új oldalt indítsam?**Igen. Írja be egy szakaszot vagy oldalt, mielőtt minden AppendDocument
hívás vagy beállítás SectionStart
hogy NewPage
.
**Hogyan tartom a rendeltetési stílusokat az import során?**Használat ImportFormatMode.UseDestinationStyles
A AppendDocument
.
**Szeretné az oldalszámokat és a TOC-t automatikusan frissíteni?**hívás UpdateFields()
(és a UpdatePageLayout()
Pontos leírás után (minden beállítás után.
**Lehet-e titkosított bevitelt ötvözni és titkolt kimenetet termelni?**Igen, biztosítson LoadOptions.Password
Bevezetéshez és használathoz PdfSaveOptions.EncryptionDetails
(vagy OoxmlSaveOptions.Password
) a termeléshez.
**Szükséges az iroda?**No. Aspose.Words egy egyedülálló könyvtár.