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

شروع موضوع توسط behrouzgholami ‏30 سپتامبر 2017 در انجمن برنامه‌نویسی با جاوااسکریپت (JavaScript)

  1. behrouzgholami

    behrouzgholami Member

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

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

    the_king مدیرکل انجمن

    ارسال‌ها:
    10,956
    تشکر شده:
    11,118
    امتیاز دستاورد:
    113
    دسترسی بدون تایید صفحه وب به اینجور موارد رو نمیدن چون راحت ازش سوء استفاده میشه، همینطوری هم سایت ها برای تبلیغ مزاحمت ایجاد می کنن، چه برسه به اینکه دسترسی به تنظیمات چاپ بهشون داده بشه.
    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 در ‏1 اکتبر 2017
    behrouzgholami از این پست تشکر کرده است.
  3. behrouzgholami

    behrouzgholami Member

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

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

    the_king مدیرکل انجمن

    ارسال‌ها:
    10,956
    تشکر شده:
    11,118
    امتیاز دستاورد:
    113
    wkhtmltopdf.org
    مثال اینو زده :
    کد (Text):

    wkhtmltopdf http://google.com google.pdf
     
    اون Total HTML Converter هم که راهنمای مفصلی داره :
    Convert HTML Files Via Command Line With Total HTML Converter
     
    نوشته شده توسط the_king در ‏1 اکتبر 2017
    behrouzgholami از این پست تشکر کرده است.
  5. behrouzgholami

    behrouzgholami Member

    ارسال‌ها:
    120
    تشکر شده:
    12
    امتیاز دستاورد:
    18
    مدیر عزیز و تمام دوستان سلام مجدد

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

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

    اگه وقتش را هم ندارید و سرتون شلوغه اسم برنامه را بگید خودم پیگیر میشم.
    با تشکر
     
    نوشته شده توسط behrouzgholami در ‏1 اکتبر 2017
  6. the_king

    the_king مدیرکل انجمن

    ارسال‌ها:
    10,956
    تشکر شده:
    11,118
    امتیاز دستاورد:
    113
    من نگفتم باید آنلاین باشید. کی گفتم؟
     
    نوشته شده توسط the_king در ‏1 اکتبر 2017
  7. behrouzgholami

    behrouzgholami Member

    ارسال‌ها:
    120
    تشکر شده:
    12
    امتیاز دستاورد:
    18
    منظورم این نبود شما گفتین

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

    منظورم این بود اگه مقدوره برنامه دیگه ای معرفی بکنید که طبق آموزش خودتون که جالب هم بود از طریق کامت پرامپت بتونه عملیات تبدیل را انجام بده و رجیستری هم نخوادش
     
    نوشته شده توسط behrouzgholami در ‏2 اکتبر 2017
  8. the_king

    the_king مدیرکل انجمن

    ارسال‌ها:
    10,956
    تشکر شده:
    11,118
    امتیاز دستاورد:
    113
    هر کاری بخواهید انجام بدید براش باید وقت بذارید، حتی چند دقیقه، سرسری و بی حوصله نمیشه هیچ کاری رو درست انجام داد.
    من الان این 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 میسازه.
     
    نوشته شده توسط the_king در ‏3 اکتبر 2017
  9. behrouzgholami

    behrouzgholami Member

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

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

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

    باز هم بخاطر کمک موسی
     
    نوشته شده توسط behrouzgholami در ‏4 اکتبر 2017
  10. the_king

    the_king مدیرکل انجمن

    ارسال‌ها:
    10,956
    تشکر شده:
    11,118
    امتیاز دستاورد:
    113
    کلا روش اشتباهی ئه، هم دخالت تو انتخاب شخصی کاربر ئه و هم مشکوک برای نرم افزار های امنیتی.
    Google Chrome رو در در یکی از دو مسیر زیر میشه پیدا کرد :
    کد (Text):
    C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
    C:\Program Files\Google\Chrome\Application\chrome.exe
    که اگه مسیر فایل html رو پشت سرش به عنوان پارامتر Command Line بدید بازش می کنه. نه نیازی هست که Default ئه Open باشه و نه نیازی هست که در Registry دنبالش بگردید.
    مثلا :
    کد (Text):

    "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "D:\Program Files\wkhtmltopdf\bin\test1.htm"
     
    و بصورت معمول هم Chrome.exe جزو موارد ثبت شده است که ویندوز بدون نیاز به مسیر کامل هم میتونه پیدا کنه و اجرا کنه، ولی نمیشه روش خیلی حساب کرد.
     
    نوشته شده توسط the_king در ‏4 اکتبر 2017
    behrouzgholami از این پست تشکر کرده است.
  11. behrouzgholami

    behrouzgholami Member

    ارسال‌ها:
    120
    تشکر شده:
    12
    امتیاز دستاورد:
    18
    بخاطر زحماتتون تشکر.
    این مانع مرتفع شد.باقی راه را تا اونجا که بلدم جلو میرم و هرموقع سوالی بود مزاحم میشم.
     
    نوشته شده توسط behrouzgholami در ‏5 اکتبر 2017

به اشتراک بگذارید