SaveAs Sonrası Başlık Kayboluyor IronWord'de

This article was translated from English: Does it need improvement?
Translated
View the article in English

Lütfen dikkate alınBu davranış yalnızca bir ortamda bildirildi ve IronWord'ün değişiklik günlüğü tarafından doğrulanmadı — diğer IronWord kılavuzları SaveAs()'i standart kaydetme çağrısı olarak kullanıyor ve bildirilen bir başlık kaybı yok. Bunu, onaylanmış bir ürün kusuru değil, ortama özgü olası bir tuhaflık olarak değerlendirin ve aşağıdaki geçici çözümü uygulamadan önce kendi ortamınızda doğrulayın.

Bazı ortamlarda, bir DOCX şablonunu IronWord ile doldurup sonucu SaveAs() ile yazdığınızda, yer tutucular doğru şekilde birleşse bile şablonun başlığının oluşturulan dosyadan kaybolduğu gözlemlenmiştir.

Header (e.g. "City Attorney Cover Sheet") is visible in the original DOCX
but missing in the generated file after calling SaveAs().

Değiştirilmemiş yer tutucular ve başlık içermeyen Word şablonu

Bunun gözlemlendiği ortamda, belge SaveAs() yerine Save() ile yazıldığında başlık korunmuştur. Bu, diğer ortamlarda veya IronWord'ün değişiklik günlüğünde doğrulanmamıştır — diğer IronWord kılavuzları SaveAs()'i standart kaydetme çağrısı olarak kullanır ve başlık kaybı sorunu yaşamaz, bu nedenle bunu onaylanmış bir ürün kusuru değil, ortama özgü olarak değerlendirin.

Çözüm

1. Şablonu Yükleyin

Kaynak DOCX dosyasını WordDocument ile açın.

using IronWord;
using System.Collections.Generic;

var templatePath = @"C:\Templates\CityAttorneyCoverSheetTemplate.docx";
var outputPath   = @"C:\Output\merged.docx";

var doc = new WordDocument(templatePath);
using IronWord;
using System.Collections.Generic;

var templatePath = @"C:\Templates\CityAttorneyCoverSheetTemplate.docx";
var outputPath   = @"C:\Output\merged.docx";

var doc = new WordDocument(templatePath);
Imports IronWord
Imports System.Collections.Generic

Dim templatePath As String = "C:\Templates\CityAttorneyCoverSheetTemplate.docx"
Dim outputPath As String = "C:\Output\merged.docx"

Dim doc As New WordDocument(templatePath)
$vbLabelText   $csharpLabel

2. Yer Tutucuları Değiştirin

Şablon değiştirme için önerilen yaklaşım olan doc.Texts aracılığıyla değerlerinizi birleştirin.

var replacements = new Dictionary<string, string>
{
    ["{CaseNumber}"] = "2026-CR-12345",
    ["{DefendantName}"] = "John Doe",
    ["{DefendantAge}"] = "34",
    ["{DefendantAttorney}"] = "Jane Smith",
};

foreach (var kv in replacements)
{
    doc.Texts.ForEach(t => t.Replace(kv.Key, kv.Value));
}
var replacements = new Dictionary<string, string>
{
    ["{CaseNumber}"] = "2026-CR-12345",
    ["{DefendantName}"] = "John Doe",
    ["{DefendantAge}"] = "34",
    ["{DefendantAttorney}"] = "Jane Smith",
};

foreach (var kv in replacements)
{
    doc.Texts.ForEach(t => t.Replace(kv.Key, kv.Value));
}
Imports System.Collections.Generic

Dim replacements As New Dictionary(Of String, String) From {
    {"{CaseNumber}", "2026-CR-12345"},
    {"{DefendantName}", "John Doe"},
    {"{DefendantAge}", "34"},
    {"{DefendantAttorney}", "Jane Smith"}
}

For Each kv In replacements
    doc.Texts.ForEach(Sub(t) t.Replace(kv.Key, kv.Value))
Next
$vbLabelText   $csharpLabel

doc.Texts üzerindeki her girişi yinelemek, belge gövdesindeki her yer tutucu simgesini birleşim değeriyle değiştirir.

3. Save(), SaveAs() Değil İle Kaydedin

Bu sorunun gözlemlendiği ortamda, çıktıyı doc.Save(outputPath) ile yazmak başlığı sağlam tuttu, doc.SaveAs(outputPath) ise onu düşürdü. Bunu denenecek bir geçici çözüm olarak değerlendirin, iki yöntem arasında doğrulanmış evrensel bir davranış farkı olarak değil.

doc.Save(outputPath);
doc.Save(outputPath);
doc.Save(outputPath)
$vbLabelText   $csharpLabel

Başlığı korunmuş ve yer tutucuları doldurulmuş birleştirilmiş Word belgesi

Notlar

  • Çalışma süreciniz SaveAs() gerektiriyorsa: başlığın ortamınızda korunup korunmadığını en son IronWord sürümünde gözden geçirin.
  • Sorun yeniden ortaya çıkarsa: davranış incelenirken, kısa vadeli bir çözüm olarak daha önce çalışan bir sürüme sabitleyin.

Lütfen dikkate alınYer tutucular, kaybolsa bile gezinme sırasında hala bulunur ve değiştirilir, bu yüzden başarılı bir birleşim başlığın tutulduğu anlamına gelmez. Çıktıyı açın ve kontrol edin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 48,355 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronWord
bir örnek çalıştırın verilerinizi bir Word belgesine dönüştürün.