PDA

View Full Version : نحوه پيدا كردن تعداد صفحات فايل Word و PDF



hrbaban
یک شنبه 19 اردیبهشت 1389, 14:57 عصر
با سلام . . .

من حدود 400 تا 500 تا فايل وورد و پي دي اف دارم كه ميخوام از اينها يه ليستي تهيه كنم به همراه تعداد صفحات هر كدوم .

ليست كردن اسمهاشون كاري نداره اما نمي دونم چطور ميتونم با سي شارپ برنامه اي بنويسم كه تعداد صفحات اونها را برام ليست كنه ؟

Salar Ashgi
یک شنبه 19 اردیبهشت 1389, 15:14 عصر
با استفاده از فناوری جستجوی سایت :

http://www.barnamenevis.org/forum/showpost.php?p=940047&postcount=412


این مخصوص فایلهای PDF هستش ، برای فایلهای Word هم روش آنچنان سر راستی وجود نداره ،

بنظرم باید تبدیل بشن به PDF و بعد ... ( اگه تعداد فایلهای Word کم باشه )

موفق باشید .

hrbaban
یک شنبه 19 اردیبهشت 1389, 15:49 عصر
تعداد زيادي از اونها فايل وورد هستند تقريبا 300 تا .

يه راه ديگه ؟؟؟؟؟؟؟؟؟

mohammad meta
یک شنبه 19 اردیبهشت 1389, 17:16 عصر
با استفاده از com interop شما می تونین این کار را انجام دهید .dll های adobe pdf,microsoft word را add refrence کنید .و dllImport,....

hrbaban
سه شنبه 21 اردیبهشت 1389, 10:08 صبح
كسي نيست يه كد داشته باشه ؟

اَرژنگ
سه شنبه 21 اردیبهشت 1389, 11:42 صبح
كسي نيست يه كد داشته باشه ؟
http://www.codeproject.com/KB/cs/mswordcount.aspx

hrbaban
چهارشنبه 22 اردیبهشت 1389, 00:41 صبح
خدايش خودت اين كد رو روي 200 تا فايل تست كردي ؟

اين به درد يكي دوتا فايل ميخوره و اگر بيشتر باشه سيستم هنگ ميكنه . يه بار امتحان كن .

اَرژنگ
چهارشنبه 22 اردیبهشت 1389, 11:24 صبح
خدايش خودت اين كد رو روي 200 تا فايل تست كردي ؟

اين به درد يكي دوتا فايل ميخوره و اگر بيشتر باشه سيستم هنگ ميكنه . يه بار امتحان كن .

از همان کد استفاده کردم، خداییش خودتان بگید چرا برایه من کار میکنه؟
(من مفلس همش ۱۰ تا فایل word داشتم، ولی ۲۰۰ تا هم نباید مشکلی باشد)



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.Word;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.DataSource = GetFileDetails();
}
private List<string> GetFileDetails()
{
List<string> fileDetails = new List<string>();
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = true;
if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] files = openFileDialog.FileNames;
Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.Application();
foreach (string fileName in files)
{
// give any file name of your choice.
object ofileName = fileName;
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
Microsoft.Office.Interop.Word.Document aDoc = WordApp.Documents.Open(ref ofileName,
ref missing, ref readOnly, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref isVisible);
Microsoft.Office.Interop.Word.WdStatistic stat = Microsoft.Office.Interop.Word.WdStatistic.wdStatis ticPages;
int num = aDoc.ComputeStatistics(stat, ref missing);
fileDetails.Add(string.Format("The number of pages in {0} is {1} pages long", fileName, num));
object saveChanges = false;
aDoc.Close(ref saveChanges, ref missing, ref missing);
}
}
return fileDetails;
}
}
}