Przeglądaj źródła

In certain cases CreatePicture resulted in a corrupted document when opened in Word 2013/2010. The reason was that the docPr id="" attribute was duplicated. A bookmark already had id="7".

Patch provided by Source2702
master
MadBoy_cp 10 lat temu
rodzic
commit
1d8b7da0b1
2 zmienionych plików z 6 dodań i 5 usunięć
  1. 4
    3
      DocX/Paragraph.cs
  2. 2
    2
      DocX/Properties/AssemblyInfo.cs

+ 4
- 3
DocX/Paragraph.cs Wyświetl plik

@@ -1588,10 +1588,11 @@ namespace Novacode
int newDocPrId = 1;
List<string> existingIds = new List<string>();
foreach (var docPrId in document.Xml.Descendants(XName.Get("docPr", DocX.wp.NamespaceName)))
foreach (var bookmarkId in document.Xml.Descendants(XName.Get("bookmarkStart", DocX.w.NamespaceName)))
{
existingIds.Add(docPrId.Attributes().FirstOrDefault(x => x.Name == "id").Value);
var idAtt = bookmarkId.Attributes().FirstOrDefault(x => x.Name.LocalName == "id");
if (idAtt != null)
existingIds.Add(idAtt.Value);
}
while (existingIds.Contains(newDocPrId.ToString()))

+ 2
- 2
DocX/Properties/AssemblyInfo.cs Wyświetl plik

@@ -35,5 +35,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.16")]
[assembly: AssemblyFileVersion("1.0.0.16")]
[assembly: AssemblyVersion("1.0.0.17")]
[assembly: AssemblyFileVersion("1.0.0.17")]

Ładowanie…
Anuluj
Zapisz