PDA

View Full Version : طراحی کتاب الکترونیک



siyavash_ghanbari
سه شنبه 03 آذر 1388, 18:15 عصر
با سلام خدمت دوستان

یه مسله ای هست که برای حلش نیاز به راهنمایی و نظر دوستان دارم.

کتاب های الکترونیکی pdf رو در نظر بگیریید :

1- یک نرم افزار که این نوع فایل ها (pdf) رو ایجاد می کند

2- خود فایل pdf

3- نرم افزار reader که فایل pdf رو می خواند

در این سیستم ما 3 مفهموم رو داریم تا بتونیم کتاب الکترونیکی رو داشته باشیم ، فرمت های دیگه مثل DJVU و یا postscript هم این سه سطح (نرم افزار طراح ، کتاب و نرم افزار reader ) رو دارند.

با توجه به اینکه بخواهیم ما هم چنین کاری رو انجام بدیم و البته فقط text رو تو فایل ذخیره نکنیم و به کمک اون نرم افزار visual که کارش طراحی کتابه این قابلیت رو به کتاب بدیم که صفحات کتاب رو مثل فرم های برنامه نویسی طراحی کنه (یعنی کاملا دستش باز باشه) ، بتونه کنترل هایی رو تو صفحات بچینه و حتی براشون کد بنویسه (البته من نمی خوام بعد از طراحی صفحات فرمت PE از کتاب ایجاد کنم : EXE و...) و می خوام کتاب در قالب یک فایل باینری ذخیره شه و عکس های کتاب و تمامی عناصر اون تو همون فایل باشه.

سوال اول : اط چه چیزی به عنوان مفهوم صفحه استفاده کنم (Panel,GroupBox,TabPage,…) ؟

سوال دوم : چطور می تونم کنترل های درون یک پنل (نمی دونم چند تا و از چه نوعی هستند) رو درون یک فایل ذخیره کنم و سپس با باز کردن مجدد نرم افزار اطلاعات اون آبجکت هارو از فایل خونده و دوباره با همون خاصیت هاشون در پنل ایجادشون کنم ؟

این پروژه یه جورایی شبیه visual studio خدمونه اما خروجی فایل اجرایی نمی خوایم.

هم اکنون نیازمند یاری (سبزتان) هستم !

siyavash_ghanbari
چهارشنبه 04 آذر 1388, 21:12 عصر
کسی نیست ... ؟

siyavash_ghanbari
شنبه 07 آذر 1388, 21:53 عصر
کسی نیست که بتونه کمکی کنه ؟

debugger
شنبه 07 آذر 1388, 23:08 عصر
معمولا نوشتن اینجور برنامه زمان زیادی می بره و اکثرا هم تیمی هستند

و تو هر ورژن یه باگی از اونا رفع میشه

اول باید کامل مساله را بررسی ومطالعه و ارزیابی کنید که میخواهید چه چیزهایی داشته باشید؟ چه امکاناتی؟ و ...

کجا کاربد خواهد داشت ؟؟؟

سپس مساله را به صورت یه برنامه خیلی ساده شروع به نوشتن کنید و در هر مرحله شاخ و برگ ان را زیاد تر می کنید

یعنی کل را تقسیم به جز می کنید و جز به جز جلو میرید

siyavash_ghanbari
سه شنبه 17 آذر 1388, 03:05 صبح
ممنون ، اما :
چطور می تونم کنترل های درون یک پنل (نمی دونم چند تا و از چه نوعی هستند) رو درون یک فایل ذخیره کنم و سپس با باز کردن مجدد نرم افزار اطلاعات اون آبجکت هارو از فایل خونده و دوباره با همون خاصیت هاشون در پنل ایجادشون کنم ؟

sd.CSharpProgrammer
سه شنبه 17 آذر 1388, 23:28 عصر
ممنون ، اما :
چطور می تونم کنترل های درون یک پنل (نمی دونم چند تا و از چه نوعی هستند) رو درون یک فایل ذخیره کنم و سپس با باز کردن مجدد نرم افزار اطلاعات اون آبجکت هارو از فایل خونده و دوباره با همون خاصیت هاشون در پنل ایجادشون کنم ؟

بنظر من بهترین روش برای انجام اینکار استفاده از xml هست. میتونی بشینی یه فرمت xml رو برای برنامه ات تعریف کنی که توی هر فایل xml اجزای اون کتاب رو توصیف کنه و اگه به این مطلب حساسی که کاربر فرمت فایل های برنامه ات رو نفهمه میتونی فایل های xml رو encode کنی. برنامه وقتی یک فایل رو باز کنه , اول اون رو decode میکنه و بعدش براساس اون سند xml که در اختیار داره تمامی صفحات و اجزای اونها رو نشون بده.

بعنوان مثال این کد xml یه نمونه ساده و کوچیک این روشه (که میتونه نسبت به قابلیت های برنامه وسیعتر باشه) :




<Document>
<Page number="1">
<Object Type="Label">
<Text Align="Right">
متن مورد نظر
</Text>
</Object>
</Page>
</Document>



فکر کنم اونقدر واضح هست که احتیاج به توضیح نداشته باشه. البته این یه مثال کوچیکه که فقط برای نشون دادن متن قابل استفاده هست ولی باز هم میگم , میتونی بر طبق نیازهای برنامه ات تگها و مشخصات بیشتری برای آبجکت های دیگه ای (مثل تصاویر و خیلی چیزهای دیگه ای که خودت بهتر از من میدونی) تعریف کنی.


موفق باشی

siyavash_ghanbari
جمعه 20 آذر 1388, 12:20 عصر
سلام ، ممنون از sdCSharpProgrammer عزیز.
منظور شما همون serialize کردنه درسته ؟
حالا اگه تو پنل ما یک image داشته باشیم اونوقت xml که متنی چطور با تصویر برخورد میکنه ؟
(در صورتی که نخوام آدرس عکس رو تو xml دخیره کنم منظورم ذخیره خود عکس باشه)

یه سوال دیگه خروجی من بسیار شبیه single web Archive مایکروسافته (*.mht) !

حالا باید چی کار کرد ؟ :افسرده: