Что-то не так с этим кодом? Это дает мне испорченный контент - PullRequest
0 голосов
/ 05 мая 2011
private static void UpdateFontSettings(WordprocessingDocument content, WordprocessingDocument template)

    {
        if (content != null && content.MainDocumentPart != null && content.MainDocumentPart.FontTablePart != null &&
            template != null && template.MainDocumentPart != null && template.MainDocumentPart.FontTablePart != null)
        {
            IEnumerable<OpenXmlPart> partsToDelete = from idPartPair in content.MainDocumentPart.FontTablePart.Parts
                                                     select idPartPair.OpenXmlPart;

            content.MainDocumentPart.FontTablePart.DeleteParts(partsToDelete);

            StreamReader streamReader = null;
            StreamWriter streamWriter = null;

            try
            {
                streamReader = new StreamReader(template.MainDocumentPart.FontTablePart.GetStream());
                streamWriter = new StreamWriter(content.MainDocumentPart.FontTablePart.GetStream(FileMode.Create));
            }
            catch
            {
                if (streamReader != null)
                {
                    streamReader.Close();
                }

                throw;
            }

            using (streamWriter)
            {
                streamWriter.Write(streamReader.ReadToEnd());
            }

            if (streamReader != null)
            {
                streamReader.Close();
            }
        }
    }

1 Ответ

0 голосов
/ 05 мая 2011

Я бы предложил установить тип кодировки при создании StreamWriter. Я полагаю, что для большинства систем по умолчанию используется ANSI, хотя вам может потребоваться UTF8 или что-то еще.

...