تبدیل صفحات اچ تی ام ال به پی دی اف آفلاین با کدنویسی

سلام به همه.دارم پروژه ای کار میکنم که متاسفانه تو یه بخشش موندم.
من میخوام در صفحه اچ تی ام الیک دکمه بذارم که با کلیک بر روی آن متن موجود در صفحه با فرمت پی دی اف ذخیره بشه.

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

the_king

مدیرکل انجمن
سلام به همه.دارم پروژه ای کار میکنم که متاسفانه تو یه بخشش موندم.
من میخوام در صفحه اچ تی ام الیک دکمه بذارم که با کلیک بر روی آن متن موجود در صفحه با فرمت پی دی اف ذخیره بشه.

توجه داشته باشید که اینکار حتما باید با کدنویسی و بصورت آفلاین انجام بشه.میدونم سایتهایی هستن که میشسه بهشون لینک شد و صفحه وب را پی دی اف ذخیره کرد اما همانطور که گفتم میخوام بشه افلاین یعنی موقعی که به اینترنت متصل نیستیم بشه اینکار را کرد.
شنیدم با افزونه جی کوئری میشه. خواهشا یکی با یک مثال کمک بکنه به شدت مهمه
یه مثال بذارین که داخل صفحه وب مثلا سلام باشه و زیرش یه دکمه که با کلیک بر روش سلام در ادرس مربوطه پی دی اف ذخیره بشه مشکلم حله.
یا بگین کدوم سایت فارسی یا انگلیسی چنین مثالی داره
دسترسی بدون تایید صفحه وب به اینجور موارد رو نمیدن چون راحت ازش سوء استفاده میشه، همینطوری هم سایت ها برای تبلیغ مزاحمت ایجاد می کنن، چه برسه به اینکه دسترسی به تنظیمات چاپ بهشون داده بشه.
Javascript آمادگی صفحه رو برای چاپ شدن اعلام می کنه تا پنجره چاپ باز بشه، نه اینکه مجبورش کنه pdf بسازه. کاربر ئه که تصمیم میگیره با چه Printer ای و چه تنظیماتی چاپ کنه و یا اصلا تایید بکنه یا نکنه.
اگه غیر از این بود ممکن بود یه سایت تبلیغاتی یهو با پرینتر کاربر 100 صفحه تراکت خودشو بدون هشدار قبلی چاپ کنه.
Window print() Method
و میشه برای صفحه موقع چاپ شدن Style های متفاوتی در نظر گرفت تا با ظاهر مناسب چاپ بشه :
CSS3 Media Queries
تنظیم برگه نهایی چاپ برای کاربر
به همین دلیل Javascript بدرد تون نمیخوره.
اگه فایل HTML رو همون داخل برنامه میسازید، میتوانید یه برنامه تبدیل html به pdf رو که قابلیت اجرا از طریق command line با سوئیچ ها رو داره کنار برنامه تون قرار بدید و وقتی pdf ساخته شد به مسیر فایل pdf ای که میسازه داخل کد HTML لینک بدید.اینکه کدوم برنامه مبدل رو بکار ببرید خیلی مهم نیست، مهم اینه که قابلیت اجرا با command line رو داشته باشه، مثل wkhtmltopdf یا Total HTML Converter
 
مدیر عزیز خیلی بزرگواری کردی.
بله منظور من تبدیل یک صفحه اچ تی ام ال که داخل برنامه ساخته میشه بودش.با استفاده از برنامه هایی هم که گفتی بله اگه انجام بشه کارم راه میافته.

حلا سوال اینه که من یکی از این برنامه ها را دانلود کردم سوییچهای مربوط به اینکار را از چه منبعی تهیه بکنم. آیا فایل هلپ همراهشون دارن.
شما برنامه ای معرفی میکنید که احتیاج به لایسنس نداشته باشه و سوییچهای مربوطش هم همراهش باشن تا من از خط فرمان بتونم کارم را انجام بدم
 

the_king

مدیرکل انجمن
مدیر عزیز خیلی بزرگواری کردی.
بله منظور من تبدیل یک صفحه اچ تی ام ال که داخل برنامه ساخته میشه بودش.با استفاده از برنامه هایی هم که گفتی بله اگه انجام بشه کارم راه میافته.

حلا سوال اینه که من یکی از این برنامه ها را دانلود کردم سوییچهای مربوط به اینکار را از چه منبعی تهیه بکنم. آیا فایل هلپ همراهشون دارن.
شما برنامه ای معرفی میکنید که احتیاج به لایسنس نداشته باشه و سوییچهای مربوطش هم همراهش باشن تا من از خط فرمان بتونم کارم را انجام بدم
wkhtmltopdf.org
مثال اینو زده :
کد:
wkhtmltopdf http://google.com google.pdf
اون Total HTML Converter هم که راهنمای مفصلی داره :
Convert HTML Files Via Command Line With Total HTML Converter
 
مدیر عزیز و تمام دوستان سلام مجدد

Total HTML Converter که معرفی کردین خوبه اما متاسفانه رایگان نیست و باید رجیستر بشه.البته اگه قرار بود خودم استفاده بکنم رجیستر کردنش کاری نداره اما خب اگه قرار باشه نرم افزار من روی سیستم کاربران نصب و فایل اچ تی ام ال ساخته شده را پی دی اف بکنه که ماجرا هم دقیقا از همین قراره مسلما نمیتونم به کاربر بگم برو اول برنامه را رجیستر بکن.
اون یکی هم که فرمودین برای پی دی اف کردن باید آنلاین باشیم که عرض کردم اینطوری باید عمل بکنه که بصورت آف لاین اچ تی ام ال را پی دی اف بکنه.

حالا اگه امکانش هست یه برنامه بهم معرفی بکنید یا اینجا اپلود بکنید که من بتونم توسط خط فرمان کار تبدیل را انجام بدم.

اگه وقتش را هم ندارید و سرتون شلوغه اسم برنامه را بگید خودم پیگیر میشم.
با تشکر
 

the_king

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

Total HTML Converter که معرفی کردین خوبه اما متاسفانه رایگان نیست و باید رجیستر بشه.البته اگه قرار بود خودم استفاده بکنم رجیستر کردنش کاری نداره اما خب اگه قرار باشه نرم افزار من روی سیستم کاربران نصب و فایل اچ تی ام ال ساخته شده را پی دی اف بکنه که ماجرا هم دقیقا از همین قراره مسلما نمیتونم به کاربر بگم برو اول برنامه را رجیستر بکن.
اون یکی هم که فرمودین برای پی دی اف کردن باید آنلاین باشیم که عرض کردم اینطوری باید عمل بکنه که بصورت آف لاین اچ تی ام ال را پی دی اف بکنه.
من نگفتم باید آنلاین باشید. کی گفتم؟
 
منظورم این نبود شما گفتین

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

منظورم این بود اگه مقدوره برنامه دیگه ای معرفی بکنید که طبق آموزش خودتون که جالب هم بود از طریق کامت پرامپت بتونه عملیات تبدیل را انجام بده و رجیستری هم نخوادش
 

the_king

مدیرکل انجمن
منظورم این نبود شما گفتین

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

منظورم این بود اگه مقدوره برنامه دیگه ای معرفی بکنید که طبق آموزش خودتون که جالب هم بود از طریق کامت پرامپت بتونه عملیات تبدیل را انجام بده و رجیستری هم نخوادش
هر کاری بخواهید انجام بدید براش باید وقت بذارید، حتی چند دقیقه، سرسری و بی حوصله نمیشه هیچ کاری رو درست انجام داد.
من الان این wkhtmltopdf رو از سایتش دانلود کردم و نصب کردم، رفتم توی فولدر bin جایی که نصب شده بود و یه متن با Microsoft Word نوشتم با Save As یه فایل test1.htm ساختم و برنامه رو روش تست کردم.
با دستور D:\Program Files\wkhtmltopdf\bin>wkhtmltopdf.exe test1.htm test1.pdf که همه این کارها جمعا چند دقیقه بیشتر نشد، یه فایل test1.pdf ئه 12 کیلوبایتی ساخت؛ همونطوری که انتظار داشتم. از روی چه چیزی میگین باید آنلاین باشه؟ این فایل اجرایی ئه که با Command Line اجرا میشه، سرور که نداره. روی همون کامپیوتر که اجرا میشه pdf میسازه.
 
بله دستتون درد نکنه که لطف میکنید و وقت میگذارید. الان از سایتش دانلود کردم و کاملا حق با شما بود. بنده عرض کردم کد رجیستری میخواد. قبلا از یکی از سایتهای فارسی زبان دانلود کرده بودم.
به هر حال مشکل به لطف کمک شما حل شد.

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

سوال دوم اینکه با دوبار کلیک بر روی هر فایلی در ویندوز اون فایل با نرم افزاری که برای اجراش تعریف شده باز میشه. مثلا فایلهای اچ تی ام ال تو سیستم من با دوبار کلیک با فایرفاکس باز میشن.حالا اگه بخوایم با برنامه دیگه باز بشه لازمه به openWithمراجعه بکنیم و در صورت لزوم use this app for all را تیک بزنیم تا از این به بعد برای همیشه با برنامه جدید اجرا بشه.حالا سوال من اینه که چطور میتونم با کدنویسی کاری بکنم تا اگر فرضا روی سیستم کاربری که از نرم افزارم استفاده میکنه اگه فایلهای اچ تی ام ال با دوبار کلیک با فایرفاکس اجرا میشن بعد نصب نرم افزار با گوگل کروم اجرا بشن.اینرا هم اگه لطف بکنید و بگید باتید کجای رجیستری را تغییر بدم ممنونتون میشم

باز هم بخاطر کمک موسی
 

the_king

مدیرکل انجمن
بله دستتون درد نکنه که لطف میکنید و وقت میگذارید. الان از سایتش دانلود کردم و کاملا حق با شما بود. بنده عرض کردم کد رجیستری میخواد. قبلا از یکی از سایتهای فارسی زبان دانلود کرده بودم.
به هر حال مشکل به لطف کمک شما حل شد.

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

سوال دوم اینکه با دوبار کلیک بر روی هر فایلی در ویندوز اون فایل با نرم افزاری که برای اجراش تعریف شده باز میشه. مثلا فایلهای اچ تی ام ال تو سیستم من با دوبار کلیک با فایرفاکس باز میشن.حالا اگه بخوایم با برنامه دیگه باز بشه لازمه به openWithمراجعه بکنیم و در صورت لزوم use this app for all را تیک بزنیم تا از این به بعد برای همیشه با برنامه جدید اجرا بشه.حالا سوال من اینه که چطور میتونم با کدنویسی کاری بکنم تا اگر فرضا روی سیستم کاربری که از نرم افزارم استفاده میکنه اگه فایلهای اچ تی ام ال با دوبار کلیک با فایرفاکس اجرا میشن بعد نصب نرم افزار با گوگل کروم اجرا بشن.اینرا هم اگه لطف بکنید و بگید باتید کجای رجیستری را تغییر بدم ممنونتون میشم

باز هم بخاطر کمک موسی
کلا روش اشتباهی ئه، هم دخالت تو انتخاب شخصی کاربر ئه و هم مشکوک برای نرم افزار های امنیتی.
Google Chrome رو در در یکی از دو مسیر زیر میشه پیدا کرد :
کد:
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
C:\Program Files\Google\Chrome\Application\chrome.exe
که اگه مسیر فایل html رو پشت سرش به عنوان پارامتر Command Line بدید بازش می کنه. نه نیازی هست که Default ئه Open باشه و نه نیازی هست که در Registry دنبالش بگردید.
مثلا :
کد:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "D:\Program Files\wkhtmltopdf\bin\test1.htm"
و بصورت معمول هم Chrome.exe جزو موارد ثبت شده است که ویندوز بدون نیاز به مسیر کامل هم میتونه پیدا کنه و اجرا کنه، ولی نمیشه روش خیلی حساب کرد.
 
بخاطر زحماتتون تشکر.
این مانع مرتفع شد.باقی راه را تا اونجا که بلدم جلو میرم و هرموقع سوالی بود مزاحم میشم.
 

جدیدترین ارسال ها

بالا