Spire.Doc基本操作,你會了嗎?
1. 問:如何從word文檔中獲取文本?
答:您可以調用方法method document.GetText()來執行此操作。完整代碼:
Document document = new Document(); document.LoadFromFile(@"..\..\test.docx"); using (StreamWriter sw = File.CreateText("output.txt")) { sw.Write(document.GetText()); }
2. 問:如何插入具有指定高度和寬度的圖像?
答:您可以設置DocPicture的屬性高度和寬度來調整圖像大小。完整代碼:
Document document = new Document(); document.LoadFromFile("sample.docx", FileFormat.Docx); Image image = Image.FromFile("image.jpg"); //specify the paragraph Paragraph paragraph = document.Sections[0].Paragraphs[2]; DocPicture picture = paragraph.AppendPicture(image); //resize the image picture.Height = picture.Height * 0.8f; picture.Width = picture.Width * 0.8f; document.SaveToFile("result.docx", FileFormat.Docx);
3. 問:如何對齊word文檔中的文本?
答:請設置段落的屬性HorizontalAlignment以對齊文本。完整代碼:
Document document = new Document(); document.LoadFromFile("sample.docx"); //set paragraph1 to align left Paragraph paragraph1 = document.Sections[0].Paragraphs[0]; paragraph1.Format.HorizontalAlignment = HorizontalAlignment.Left; //set paragraph2 to align center Paragraph paragraph2 = document.Sections[0].Paragraphs[1]; paragraph2.Format.HorizontalAlignment = HorizontalAlignment.Center; //set paragraph3 to align right Paragraph paragraph3 = document.Sections[0].Paragraphs[2]; paragraph3.Format.HorizontalAlignment = HorizontalAlignment.Right; document.SaveToFile("result.docx");
4. 問:如何更改現有書簽上的文字?
答:您可以使用BookmarksNavigator來查找指定的書簽。然后請調用ReplaceBookmarkContent方法替換書簽上的文本。完整代碼:
Document document = new Document(); document.LoadFromFile("sample.doc"); BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document); bookmarkNavigator.MoveToBookmark("mybookmark"); //replace text on bookmarks bookmarkNavigator.ReplaceBookmarkContent("new context", false); document.SaveToFile("result.doc", FileFormat.Doc);
5. 問:如何將word轉換為html?
答:您可以使用指定的文件格式HTML調用SaveToFile方法將word文檔轉換為html。完整代碼:
Document document = new Document(); document.LoadFromFile("sample.doc"); //save word document as html file document.SaveToFile("result.html", FileFormat.Html); document.Close();
6. 問:如何將html轉換為word文檔?
答:請調用LoadFromFile方法加載html文件。然后調用SaveToFile方法將html轉換為word文檔。完整代碼:
Document document = new Document(); document.LoadFromFile("sample.html", FileFormat.Html, XHTMLValidationType.None); //save html as word document document.SaveToFile("result.doc"); document.Close();
7. 如何將word2007轉換為word2003?
答:只需使用指定的文件格式doc調用SaveToFile方法即可將word2007轉換為word2003。完整代碼:
Document document = new Document("word2007.docx"); //convert word2007 to word2003 document.SaveToFile("word2003.doc", FileFormat.Doc); document.Close();
8. 問:如何替換和刪除Word文檔中的頁眉或頁腳?
答:請使用Section獲取頁眉或頁腳。您可以調用替換方法來替換標題並調用Clear方法以刪除Word文檔的頁眉或頁腳。
Document document = new Document(); Section section = document.AddSection(); //add a header HeaderFooter header = section.HeadersFooters.Header; Paragraph headerParagraph = header.AddParagraph(); TextRange text = headerParagraph.AppendText("Demo of Spire.Doc"); text.CharacterFormat.TextColor = Color.Blue; document.SaveToFile("DocWithHeader.doc"); //replace the header headerParagraph.Replace("Demo", "replaceText", true, true); document.SaveToFile("DocHeaderReplace.doc"); document.LoadFromFile("DocWithHeader.doc"); //delete the heater document.Sections[0].HeadersFooters.Header.Paragraphs.Clear(); document.SaveToFile("DocHeaderDelete.doc");
9. 問:如何合並word文檔?
答:請調用克隆方法復制一節。然后調用Add方法將該部分的副本添加到指定的文檔。完整代碼:
Document document1 = new Document(); document1.LoadFromFile("merge1.docx"); Document document2 = new Document(); document2.LoadFromFile("merge2.docx"); //add sections from document1 to document2 foreach (Section sec in document2.Sections) { document1.Sections.Add(sec.Clone()); } document1.SaveToFile("result.docx");
10. 問:如何遍歷word文檔中表格的單元格?
答:行是表中行的集合,單元是行中單元的集合。所以你可以用兩個循環來遍歷表格的單元格。完整代碼:
Document document = new Document(); document.LoadFromFile("sample.docx"); Spire.Doc.Interface.ITable table = document.Sections[0].Tables[0]; int i=0; //traverse the cells foreach (TableRow row in table.Rows) { foreach (TableCell cell in row.Cells) { i++; } }
11. 問:如何設置陰影文字?
答:您只需設置TextRange的屬性IsShadow即可。完整代碼:
Document document = new Document(); Section section = document.AddSection(); Paragraph paragraph = section.AddParagraph(); TextRange HText = paragraph.AppendText("this is a test!"); //set the property IsShadow HText.CharacterFormat.IsShadow = true; HText.CharacterFormat.FontSize = 80; document.SaveToFile("result.doc");
12. 問:如何在Word中插入行號?
答:您需要設置節的屬性LineNumberingRestartMode,LineNumberingStep,LineNumberingStartValue以在Word文檔中插入行號。完整代碼:
Document document = new Document(); Section section = document.AddSection(); //insert line numbers section.PageSetup.LineNumberingRestartMode = LineNumberingRestartMode.RestartPage; section.PageSetup.LineNumberingStep = 1; section.PageSetup.LineNumberingStartValue = 1; Paragraph paragraph = section.AddParagraph(); paragraph.AppendText("As an independent Word .NET component, Spire.Doc for .NET doesn't need Microsoft Word to be installed on the machine. However, it can incorporate Microsoft Word document creation capabilities into any developers .NET applications."); document.SaveToFile("result.doc");
13. 問:如何使圖像周圍的文字?
答:您需要設置圖片的屬性TextWrappingStyle和ShapeHorizontalAlignment。完整代碼:
Document document = new Document(); Section section = document.AddSection(); Paragraph paragraph = section.AddParagraph(); string str = "As an independent Word .NET component, Spire.Doc for .NET doesn't need Microsoft Word to be installed on the machine. However, it can incorporate Microsoft Word document creation capabilities into any developers.NET applications.As an independent Word .NET component, Spire.Doc for .NET doesn't need Microsoft Word to be installed on the machine. However, it can incorporate Microsoft Word document creation capabilities into any developers’.NET applications."; paragraph.AppendText(str); DocPicture picture = paragraph.AppendPicture(Image.FromFile("logo.png")); picture.TextWrappingStyle = TextWrappingStyle.Tight; picture.HorizontalAlignment = ShapeHorizontalAlignment.Center; document.SaveToFile("result.doc");
14. 問:如何編輯Word文檔中的現有表?
答:使用Section獲取表格,您可以編輯單元格中的文本,並且可以將新行插入到表格中。完整代碼:
Document doc = new Document("sample.docx"); Section section = doc.Sections[0]; ITable table = section.Tables[0]; //edit text in a cell TableCell cell1 = table.Rows[1].Cells[1]; Paragraph p1 = cell1.Paragraphs[0]; p1.Text = "abc"; TableCell cell2 = table.Rows[1].Cells[2]; Paragraph p2 = cell2.Paragraphs[0]; p2.Items.Clear(); p2.AppendText("def"); TableCell cell3 = table.Rows[1].Cells[3]; Paragraph p3 = cell3.Paragraphs[0]; (p3.Items[0] as TextRange).Text = "hij"; //insert new row TableRow newRow = table.AddRow(true, true); foreach (TableCell cell in newRow.Cells) { cell.AddParagraph().AppendText("new row"); } doc.SaveToFile("result.doc");
15. 問:如何設置超鏈接的格式不帶下划線?
答:請設置超鏈接字段的textRange節點來格式化超鏈接。完整代碼:
Document document = new Document(); Section section = document.AddSection(); Paragraph paragraph = section.AddParagraph(); Field hyperlink = paragraph.AppendHyperlink("www.e-iceblue.com", "www.e-iceblue.com", HyperlinkType.WebLink); TextRange text = hyperlink.NextSibling.NextSibling as TextRange; text.CharacterFormat.Bold = true; text.CharacterFormat.UnderlineStyle = UnderlineStyle.None; document.SaveToFile("result.doc");
16. 問:如何設置word文檔只讀?
答:請調用Protect方法設置ProtectionType。完整代碼:
Document document = new Document(); document.LoadFromFile("sample.docx"); document.Protect(ProtectionType.AllowOnlyReading); document.SaveToFile("result.doc");
添加多行文字水印到 Word 文檔
using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; namespace WordWatermark { class Program { static void Main(string[] args) { //加載示例文檔 Document doc = new Document(); doc.LoadFromFile("Sample.docx"); //添加藝術字並設置大小 ShapeObject shape = new ShapeObject(doc,ShapeType.TextPlainText); shape.Width = 60; shape.Height = 20; //設置藝術字文本內容、位置及樣式 shape.VerticalPosition = 30; shape.HorizontalPosition = 20; shape.Rotation = 315; shape.WordArt.Text = "內部使用"; shape.FillColor = System.Drawing.Color.Red; shape.StrokeColor = System.Drawing.Color.Gray; Section section; HeaderFooter header; for (int n = 0; n < doc.Sections.Count; n++)
{
section = doc.Sections[n];
//獲取section的頁眉
header = section.HeadersFooters.Header;
Paragraph paragraph1;
for (int i = 0; i < 3; i++)
{
//添加段落到頁眉
paragraph1 = header.AddParagraph();
for (int j = 0; j < 4; j++)
{
//復制藝術字並設置多行多列位置
shape = (ShapeObject)shape.Clone();
shape.VerticalPosition = 50 + 150 * i;
shape.HorizontalPosition=20 + 160 * j;
paragraph1.ChildObjects.Add(shape); }
}
}
//保存文檔
doc.SaveToFile("result.docx", FileFormat.Docx2013);
System.Diagnostics.Process.Start("result.docx");
}
}
}
C# 修改 Word 文檔中圖片的大小
//加載Word文檔 Document document = new Document("Input.docx"); //獲取第一個section Section section = document.Sections[0]; //獲取第一個段落 Paragraph paragraph = section.Paragraphs[0]; //調整段落中圖片的大小 foreach (DocumentObject docObj in paragraph.ChildObjects) { if (docObj is DocPicture) { DocPicture picture = docObj as DocPicture; picture.Width = 50f; picture.Height = 50f; } } //保存文檔 document.SaveToFile("ResizeImages.docx");
C# 設置Word頁面大小和頁邊距
using Spire.Doc;
using Spire.Doc.Documents;
namespace SetPageSize_Doc
{
class Program
{
static void Main(string[] args)
{
//實例化一個Document對象
Document doc = new Document();
//載入測試的Word文檔
doc.LoadFromFile("test.docx");
//獲取第一個Section對象
Section sec = doc.Sections[0];
//設置紙張大小為信紙
sec.PageSetup.PageSize = PageSize.Letter;
//分別設置四個方向的頁邊距
sec.PageSetup.Margins.Top = 20f;
sec.PageSetup.Margins.Left = 30f;
sec.PageSetup.Margins.Bottom = 20f;
sec.PageSetup.Margins.Right = 30f;
//把紙張方向設置為橫向
sec.PageSetup.Orientation = PageOrientation.Landscape;
//保存並打開文檔
doc.SaveToFile("result.docx", FileFormat.Docx2010);
System.Diagnostics.Process.Start("result.docx");
}
}
}
C#代碼示例(供參考)
【示例1】添加PDF文本水印
作者:EiceblueSpire
鏈接:https://www.imooc.com/article/284363
來源:慕課網
本文原創發布於慕課網 ,轉載請注明出處,謝謝合作
using
Spire.Pdf;
using
Spire.Pdf.Annotations;
using
Spire.Pdf.Annotations.Appearance;
using
Spire.Pdf.Graphics;
using
System;
using
System.Drawing;
namespace
TextWatermark
{
class
Program
{
static
void
Main(string[] args)
{
//創建PdfDocument對象
PdfDocument pdf =
new
PdfDocument();
//加載現有PDF文檔
pdf.LoadFromFile(
"sample.pdf"
);
//創建True Type字體
PdfTrueTypeFont font =
new
PdfTrueTypeFont(
new
Font(
"宋體"
, 20f),
true
);
//水印文字
string text =
"版權所有\n侵權必究"
;
//測量文字所占的位置大小,即高寬
SizeF fontSize = font.MeasureString(text);
//計算兩個偏移量
float
offset1 = (
float
)(fontSize.Width * System.Math.Sqrt(2) / 4);
float
offset2 = (
float
)(fontSize.Height * System.Math.Sqrt(2) / 4);
//遍歷文檔每一頁
foreach (PdfPageBase page in pdf.Pages)
{
//創建PdfTilingBrush對象
PdfTilingBrush brush =
new
PdfTilingBrush(
new
SizeF(page.Canvas.Size.Width / 2, page.Canvas.Size.Height / 2));
//設置畫刷透明度
brush.Graphics.SetTransparency(0.8f);
//將畫刷中坐標系向右下平移
brush.Graphics.TranslateTransform(brush.Size.Width / 2 - offset1 - offset2, brush.Size.Height / 2 + offset1 - offset2);
//將坐標系逆時針旋轉45度
brush.Graphics.RotateTransform(-45);
//在畫刷上繪制文本
brush.Graphics.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);
//在PDF頁面繪制跟頁面一樣大小的矩形,並使用定義的畫刷填充
page.Canvas.DrawRectangle(brush,
new
RectangleF(
new
PointF(0, 0), page.Canvas.Size));
}
//保存文檔
pdf.SaveToFile(
"output.pdf"
);
System.Diagnostics.Process.Start(
"output.pdf"
);
}
}
}
|
完成代碼后,調試運行程序,生成文檔,如下:
注:如果只想設置單頁的水印效果,只需獲取指定頁,並添加水印效果即可。