Przeglądaj źródła

Added a patch provided by ArtFeel. By default the document language use to be English (Ireland). DocX now uses CurrentCulture to infer the correct language. You can know also specify a specific language.

Thank you for this patch ArtFeel. Also thanks to MadBoy for reminding me about it, without you this might have been lost in the discussions section of codeplex. Sorry about the delay Madboy.
master
coffeycathal_cp 14 lat temu
rodzic
commit
c9469689b6
2 zmienionych plików z 78 dodań i 0 usunięć
  1. 25
    0
      DocX/Formatting.cs
  2. 53
    0
      DocX/Paragraph.cs

+ 25
- 0
DocX/Formatting.cs Wyświetl plik

using System.Text; using System.Text;
using System.Xml.Linq; using System.Xml.Linq;
using System.Drawing; using System.Drawing;
using System.Globalization;
namespace Novacode namespace Novacode
{ {
/// <summary> /// <summary>
private int? position; private int? position;
private double? spacing; private double? spacing;
private CultureInfo language;
/// <summary> /// <summary>
/// A text formatting. /// A text formatting.
/// </summary> /// </summary>
underlineStyle = UnderlineStyle.none; underlineStyle = UnderlineStyle.none;
misc = Misc.none; misc = Misc.none;
// Use current culture by default
language = CultureInfo.CurrentCulture;
rPr = new XElement(XName.Get("rPr", DocX.w.NamespaceName)); rPr = new XElement(XName.Get("rPr", DocX.w.NamespaceName));
} }
/// <summary>
/// Text language
/// </summary>
public CultureInfo Language
{
get
{
return language;
}
set
{
language = value;
}
}
internal XElement Xml internal XElement Xml
{ {
get get
{ {
rPr = new XElement(XName.Get("rPr", DocX.w.NamespaceName)); rPr = new XElement(XName.Get("rPr", DocX.w.NamespaceName));
if (language != null)
rPr.Add(new XElement(XName.Get("lang", DocX.w.NamespaceName), new XAttribute(XName.Get("val", DocX.w.NamespaceName), language.Name)));
if(spacing.HasValue) if(spacing.HasValue)
rPr.Add(new XElement(XName.Get("spacing", DocX.w.NamespaceName), new XAttribute(XName.Get("val", DocX.w.NamespaceName), spacing.Value * 20))); rPr.Add(new XElement(XName.Get("spacing", DocX.w.NamespaceName), new XAttribute(XName.Get("val", DocX.w.NamespaceName), spacing.Value * 20)));

+ 53
- 0
DocX/Paragraph.cs Wyświetl plik

using System.IO.Packaging; using System.IO.Packaging;
using System.IO; using System.IO;
using System.Drawing; using System.Drawing;
using System.Globalization;
namespace Novacode namespace Novacode
{ {
HelperFunctions.RenumberIDs(Document); HelperFunctions.RenumberIDs(Document);
} }
/// <summary>
/// For use with Append() and AppendLine()
/// </summary>
/// <returns>This Paragraph in curent culture</returns>
/// <example>
/// Add a new Paragraph with russian text to this document and then set language of text to local culture.
/// <code>
/// // Load a document.
/// using (DocX document = DocX.Create(@"Test.docx"))
/// {
/// // Insert a new Paragraph with russian text and set curent local culture to it.
/// Paragraph p = document.InsertParagraph("Привет мир!").CurentCulture();
///
/// // Save this document.
/// document.Save();
/// }
/// </code>
/// </example>
public Paragraph CurentCulture()
{
ApplyTextFormattingProperty(XName.Get("lang", DocX.w.NamespaceName),
string.Empty,
new XAttribute(XName.Get("val", DocX.w.NamespaceName), CultureInfo.CurrentCulture.Name));
return this;
}
/// <summary>
/// For use with Append() and AppendLine()
/// </summary>
/// <param name="culture">The CultureInfo for text</param>
/// <returns>This Paragraph in curent culture</returns>
/// <example>
/// Add a new Paragraph with russian text to this document and then set language of text to local culture.
/// <code>
/// // Load a document.
/// using (DocX document = DocX.Create(@"Test.docx"))
/// {
/// // Insert a new Paragraph with russian text and set specific culture to it.
/// Paragraph p = document.InsertParagraph("Привет мир").Culture(CultureInfo.CreateSpecificCulture("ru-RU"));
///
/// // Save this document.
/// document.Save();
/// }
/// </code>
/// </example>
public Paragraph Culture(CultureInfo culture)
{
ApplyTextFormattingProperty(XName.Get("lang", DocX.w.NamespaceName), string.Empty,
new XAttribute(XName.Get("val", DocX.w.NamespaceName), culture.Name));
return this;
}
/// <summary> /// <summary>
/// Append text to this Paragraph. /// Append text to this Paragraph.
/// </summary> /// </summary>

Ładowanie…
Anuluj
Zapisz