【问题标题】:Anything wrong about this code? This is giving me corrupted content这段代码有什么问题吗?这给了我损坏的内容
【发布时间】:2011-05-05 17:14:04
【问题描述】:
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();
            }
        }
    }

【问题讨论】:

  • 异常发生在哪里?
  • 如果它为您提供损坏的内容,那么是的有问题。你应该说出哪里出了问题,为什么你认为这是错误的,以及你认为应该在什么时候做。
  • 另外你可能想要 try..catch 块中的 using(streamWriter) 部分,因为你可以关闭 streamReader
  • 哇,我不敢相信人们在这件事上浪费了投票。他/她是 SO 的新手 - 让他们放松一下,帮助他们学习如何使用该网站,而不是贬低他们的废话。

标签: c# openxml


【解决方案1】:

我建议您在创建 StreamWriter 时设置您的编码类型。我相信大多数系统默认为 ANSI,尽管您可能需要 UTF8 或其他东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 2015-04-25
    • 2018-09-09
    相关资源
    最近更新 更多