PDA

View Full Version : شمارش تعداد صفحات فایل ورد



systam
یک شنبه 03 دی 1391, 21:06 عصر
سلام دوستان
چجوری میتونم شمارش صفحات یک فایل ورد رو بدست بیارم با کد نویسی:لبخند:

tooraj_azizi_1035
دوشنبه 04 دی 1391, 10:38 صبح
[STAThread]
static void Main(string[] args)
{
Word.ApplicationClass WordApp = new Word.ApplicationClass();

// give any file name of your choice.
object fileName = "D:\\abc\\oop1.doc";
object readOnly = false;
object isVisible = true;

// the way to handle parameters you don't care about in .NET
object missing = System.Reflection.Missing.Value;

// Make word visible, so you can see what's happening
//WordApp.Visible = true;
// Open the document that was chosen by the dialog
Word.Document aDoc = WordApp.Documents.Open(ref fileName,
ref missing,ref readOnly, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref isVisible);

Word.WdStatistic stat = Word.WdStatistic.wdStatisticPages ;
int num = aDoc.ComputeStatistics(stat,ref missing);
System.Console.WriteLine ("The number of pages in doc is {0}",
num);
System.Console.ReadLine();
}

systam
چهارشنبه 06 دی 1391, 20:17 عصر
سلام بر دوست بزرگوارجناب تورج عزیزی
با تشکر از جواب شما
میخواستم درباره کد بالا برام یکم توضیح بدی
چیکار میکنه
ممنونم میشم

systam
چهارشنبه 06 دی 1391, 20:38 عصر
سلام یک سوال دیگه برام پیش اومد
توی کد برنامه فایل ورد برام باز میکنه نخواسته باشم برنامه رو باز کنه چیکار کنم
برنامه خواسته باشی دستکاری کنی به مشکل میخوره چیکار کنم

tooraj_azizi_1035
پنج شنبه 07 دی 1391, 15:14 عصر
سورس با سی شارپه اما زیاد فرقی نداره با وی بی.
Word.ApplicationClass نیاز داره تا Microsoft.Office.Interop.Word رو Add کنی.

ComputeStatistics آماری رو نسبت به فایل Word به ما میده.

shahryari
پنج شنبه 07 دی 1391, 18:23 عصر
تابع شمارش تعداد صفحات یک فایل ورد:

Function getWordFilePageCount(ByVal WordFile As String) As String
Dim oApp As Object
Dim oDoc As Object
Dim oTbl As Object
oApp = CreateObject("Word.Application")
oDoc = oApp.Documents.Open(WordFile)
oDoc.Repaginate()
Dim oSec As Object
Dim nStartPg As Integer, nEndPg As Integer, nSecPages As Integer
Dim NumSections As Integer
NumSections = oDoc.Sections.Count
nStartPg = 1
For Each oSec In oDoc.Sections
nEndPg = oSec.Range.Information(3) - 1
If oSec.Index = NumSections Then nEndPg = nEndPg + 1
nSecPages = nEndPg - nStartPg + 1
nStartPg = nEndPg + 1
Next
Return nSecPages
oDoc.Close(False)
oApp.Quit()
End Function


روش استفاده:

Label1.Text = getWordFilePageCount("C:\45.doc")

systam
پنج شنبه 07 دی 1391, 20:00 عصر
سلام
ممنونم که منو راهنمایی میکنید

یک مشکل مشابه در این دو تا کد بزرگورا برای من پیش اومده
شمارش صفحات به درستی انجام میشه ولی قسمت
Dim aDoc As Word.Document = saa.Documents.Open(fileName, missing, read_Only, missing, missing, missing, _
missing, missing, missing, missing, missing, isVisible)
و
oDoc = oApp.Documents.Open(WordFile)


هر دو بزرگوار از متد open استفاده کردن که موجب میشه اول فایل ورد رو باز کرده و سپس تعداد صفحه ورد برای نمایش بده
من نمیخوام فایل ورد برام باز بشه
این برنامه برای کافی نت در نظر گرفته شده
مشتری که میاد موضوع مقاله رو میگه پس جستجو فایلی که پیدا شد
تعداد صفحه مقاله مورد رو به مشتری میگیم اگه خواست براش پرینت گرفته میشه


لطفا راهنماییم کنید ممنوم میشم

systam
شنبه 09 دی 1391, 17:04 عصر
سلام
بازم خودم
حلش کردم
کد خواندن اطلاعات فایل ورد رو باید بدین صورت نوشت

Dim saa AsNew Word.Application
Dim fileName AsObject = st
Dim rea_dOnly AsObject = False
Dim isVisible AsObject = Visible = True
Dim missing AsObject = System.Reflection.Missing.Value
Dim aDoc As Word.Document = saa.Documents.Open(fileName, Nothing, True)
Dim stat As Word.WdStatistic = Word.WdStatistic.wdStatisticPages
Dim num AsInteger = aDoc.ComputeStatistics(stat, missing)
Label6.Text = " " & num & " "