Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve settings for document with PT-BR and HighAnsi chars #56

Merged
merged 3 commits into from
Oct 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions OfficeIMO.Examples/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ static void Main(string[] args) {
//BasicDocument.Example_BasicWord(folderPath, false);
//BasicDocument.Example_BasicWord2(folderPath, false);
//BasicDocument.Example_BasicWordWithBreaks(folderPath, true);
BasicDocument.Example_BasicWordWithDefaultStyleChange(folderPath, true);

BasicDocument.Example_BasicWordWithDefaultStyleChange(folderPath, false);
BasicDocument.Example_BasicWordWithDefaultFontChange(folderPath, true);
//AdvancedDocument.Example_AdvancedWord(folderPath, true);

//BasicDocument.Example_BasicDocument(folderPath, true);
Expand Down Expand Up @@ -178,8 +178,8 @@ static void Main(string[] args) {
//filePath = System.IO.Path.Combine(folderPath, "Basic Document with Fields.docx");
//Example_AddingFields(filePath, true);

Watermark.Watermark_Sample2(folderPath, true);
Watermark.Watermark_Sample1(folderPath, true);
//Watermark.Watermark_Sample2(folderPath, true);
//Watermark.Watermark_Sample1(folderPath, true);
}

private static void Example_AddingFields(string filePath, bool openWord) {
Expand Down
23 changes: 20 additions & 3 deletions OfficeIMO.Examples/Word/BasicDocument/BasicDocument.Create03.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,36 @@
namespace OfficeIMO.Examples.Word {
internal static partial class BasicDocument {
public static void Example_BasicWordWithDefaultStyleChange(string folderPath, bool openWord) {
Console.WriteLine("[*] Creating standard document with different default style");
string filePath = System.IO.Path.Combine(folderPath, "BasicWordWithDefaultStyleChange.docx");
Console.WriteLine("[*] Creating standard document with different default style (PL)");
string filePath = System.IO.Path.Combine(folderPath, "BasicWordWithDefaultStyleChangePL.docx");
using (WordDocument document = WordDocument.Create(filePath)) {
document.Settings.FontSize = 30;
document.Settings.FontFamily = "Calibri Light";
document.Settings.Language = "pl-PL";

document.Settings.Language = "pt-Br";
var paragraph1 = document.AddParagraph("To jest po polsku");

var paragraph2 = document.AddParagraph("Adding paragraph1 with some text and pressing ENTER");
paragraph2.FontSize = 15;
paragraph2.FontFamily = "Courier New";

document.Save(openWord);
}
}
public static void Example_BasicWordWithDefaultFontChange(string folderPath, bool openWord) {
Console.WriteLine("[*] Creating standard document with different default style (PT/BR)");
string filePath = System.IO.Path.Combine(folderPath, "BasicWordWithDefaultStyleChangeBR.docx");
using (WordDocument document = WordDocument.Create(filePath)) {
document.Settings.FontSize = 30;
//document.Settings.FontSizeComplexScript = 30;
document.Settings.FontFamily = "Calibri Light";
document.Settings.FontFamilyHighAnsi = "Calibri Light";
document.Settings.Language = "pt-Br";

string title = "INSTRUMENTO PARTICULAR DE CONSTITUIÇÃO DE GARANTIA DE ALIENAÇÃO FIDUCIÁRIA DE IMÓVEL";

document.AddParagraph(title).SetBold().ParagraphAlignment = JustificationValues.Center;

document.Save(openWord);
}
}
Expand Down
15 changes: 15 additions & 0 deletions OfficeIMO.Tests/Word.Settings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,22 @@ public void Test_CreatingDocumentWithSettings() {

Assert.True(document.Settings.FontSizeComplexScript == 20);

// those are default values
Assert.True(document.Settings.FontFamily == null);
Assert.True(document.Settings.FontFamilyHighAnsi == null);

document.Settings.FontFamily = "Courier New";

Assert.True(document.Settings.FontFamily == "Courier New");

document.Settings.FontFamilyHighAnsi = "Courier New";

Assert.True(document.Settings.FontFamilyHighAnsi == "Courier New");

document.Save(false);
}
using (WordDocument document = WordDocument.Load(Path.Combine(_directoryWithFiles, "CreatingDocumentWithSettings.docx"))) {
Assert.True(document.Settings.FontFamilyHighAnsi == "Courier New");
Assert.True(document.Settings.Language == "pl-PL");

document.Settings.Language = "en-US";
Expand Down Expand Up @@ -82,9 +91,15 @@ public void Test_CreatingDocumentWithSettings() {
Assert.True(document.Settings.FontSize == 30);
Assert.True(document.Settings.FontFamily == "Courier New");

document.Settings.FontFamilyHighAnsi = "Abadi";
document.Settings.FontFamily = "Arial Narrow";

document.Save();
}
using (WordDocument document = WordDocument.Load(Path.Combine(_directoryWithFiles, "CreatingDocumentWithSettings.docx"))) {
Assert.True(document.Settings.FontFamily == "Arial Narrow");
Assert.True(document.Settings.FontFamilyHighAnsi == "Abadi");

Assert.True(document.Settings.ProtectionType == null);
Assert.True(document.Settings.BackgroundColor == "FFA07A");
Assert.True(document.Settings.ZoomPercentage == 100);
Expand Down
32 changes: 32 additions & 0 deletions OfficeIMO.Word/WordSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,7 @@ public int? FontSizeComplexScript {
/// <summary>
/// Gets or Sets default font family for the whole document.
/// </summary>
/// <seealso href="http://officeopenxml.com/WPtextFonts.php">WordProcessingText Fonts </seealso>
public string FontFamily {
get {
var runPropertiesBaseStyle = GetDefaultStyleProperties();
Expand Down Expand Up @@ -265,6 +266,37 @@ public string FontFamily {
}
}

/// <summary>
/// Gets or Sets default font family for the whole document in highAnsi.
/// </summary>
/// <seealso href="http://officeopenxml.com/WPtextFonts.php">WordProcessingText Fonts </seealso>
public string FontFamilyHighAnsi {
get {
var runPropertiesBaseStyle = GetDefaultStyleProperties();
if (runPropertiesBaseStyle != null) {
if (runPropertiesBaseStyle.RunFonts != null) {
var fontFamily = runPropertiesBaseStyle.RunFonts.HighAnsi;
return fontFamily;
}
}
return null;
}
set {
var runPropertiesBaseStyle = SetDefaultStyleProperties();
if (runPropertiesBaseStyle != null) {
//runPropertiesBaseStyle.RunFonts = new RunFonts();
if (runPropertiesBaseStyle.RunFonts == null) {
runPropertiesBaseStyle.RunFonts = new RunFonts() { AsciiTheme = ThemeFontValues.MinorHighAnsi, HighAnsiTheme = ThemeFontValues.MinorHighAnsi, EastAsiaTheme = ThemeFontValues.MinorHighAnsi, ComplexScriptTheme = ThemeFontValues.MinorBidi };
}
// we also need to change it in highAnsi to fix https://github.com/EvotecIT/OfficeIMO/issues/54
runPropertiesBaseStyle.RunFonts.HighAnsi = value;
runPropertiesBaseStyle.RunFonts.HighAnsiTheme = null;
} else {
throw new Exception("Could not set font family. Styles not found.");
}
}
}

/// <summary>
/// Gets or Sets default language for the whole document. Default is en-Us.
/// </summary>
Expand Down