Org- মোডে পিডিএফ চিত্র প্রদর্শন করুন


19

দ্রষ্টব্য: এই প্রশ্নটি এখানে আগে জিজ্ঞাসা করা হয়েছিল, কোনও সাফল্য ছাড়াই।

আমার সাপ্তাহিক বৈজ্ঞানিক প্রতিবেদন লেখার জন্য অর্গল-মোডের ইনলাইন চিত্রগুলি প্রদর্শন করার ক্ষমতা দুর্দান্ত। আমি গ্রাফগুলি অন্তর্ভুক্ত করতে পারি, তাদের ডেটার সাথে তাদের লিঙ্ক করতে পারি, উপসংহারের সাথে লিঙ্ক করতে পারি এবং সত্যই org- মোডের শক্তিকে বাড়িয়ে তুলতে পারি।

আমার কেবল সমস্যাটি হ'ল org- এর প্রচলিত চিত্রের ফর্ম্যাটগুলি (jpeg, png, ইত্যাদি) ব্যবহার করার জন্য চিত্রগুলির প্রয়োজন হয়, যখন আমি আমার গ্রাফগুলি পিডিএফতে পছন্দ করি।

Org- মোডে আমি কীভাবে ইনলাইন পিডিএফ চিত্রগুলি প্রদর্শন করতে পারি?

আমার চূড়ান্ত উদ্দেশ্যটি কেবল org-মোডে এই জাতীয় লিঙ্কটি লেখা:

[[file:~/Work/grap.pdf]]

এবং এটি কি কোনও পিএনজি থাকলে ঠিক যেমনটি ইনলাইন প্রদর্শন করেছিল line

আমি জানি আমার জেপেইগ বা অন্য কিছু গ্রাফের একটি অনুলিপি থাকতে পারে (যা এখনই আমি যা করি) তবে এটি কিছুটা জটিল and


একটি সমাধান হিসেবে এই শক্তি কাজ: এর লাইন বরাবর Going endless/update-includesসময় যদি before-save-hookআপনার সাথে একটি লাইন খুঁজে পান, তাহলে #+NAMEবা #+CAPTIONমত একটি ট্যাগ দিয়ে :convertfrompdfসঙ্গে একটি লাইন দ্বারা অনুসরণ [[SOMEFILE.EXT]], তাহলে আপনি ImageMagick চালানো convertরূপান্তর করতে ফাংশন SOMEFILE.pdfথেকে SOMEFILE.EXT
দক্ষ মোদী

@ কৈশালমোদি হ্যাঁ অন্য বিকল্পটি এমন কিছু হতে পারে যা org- প্রদর্শন-চিত্রগুলিতে প্রবেশ করে।
মালবারবা

পিডিএফ-সরঞ্জাম / পপলারের উপর ভিত্তি করে একটি সমাধানটি দুর্দান্ত হবে।
ফিল্ড করুন

উত্তর:


15

দ্রষ্টব্য : convertএই সমাধানটি কাজ করার জন্য আপনার সিস্টেমে ইমেজম্যাগিক ইনস্টল করা প্রয়োজন ( এক্সিকিউটেবল)।

কীভাবে এই সমাধানটি কার্যকর করা হয়

  • ফাংশনটি org-include-img-from-pdfএমন ওয়ার্কহর্স যা পিডিএফ থেকে ইমেজ ফর্ম্যাট রূপান্তর ব্যবহার করে করে convert
  • যদি org ফাইল থাকে # ()convertfrompdf:tতবে ধরে নেওয়া হবে যে ব্যবহারকারীর একটি পিডিএফ ফাইল রয়েছে যা তারা একটি চিত্র ফাইলে রূপান্তর করতে চান। ব্যবহারকারীর উপরের বিশেষ মন্তব্যটি নীচের উদাহরণে প্রদর্শিত হিসাবে চিত্র ফাইলের লিঙ্কের উপরে রাখা উচিত ।
  • চিত্র ফাইলের ধরণটি বন্ধনী লিঙ্কে ফাইল এক্সটেনশন দ্বারা নির্ধারিত হয় [[./myimage.EXT]]

  • এতে org-include-img-from-pdfফাংশনটি যুক্ত before-save-hookকরে, ব্যবহারকারীটি ফাইলটি সংরক্ষণ করার সময় এই ফাংশনটি কার্যকর করা হয় (নীচে ফাংশন সংজ্ঞা অনুসরণ করে এলিস্প স্নিপেট দেখুন)।

উদাহরণস্বরূপ সেটআপ

এই উদাহরণস্বরূপ সেটআপে আমার কাছে নিম্নলিখিত ফাইলগুলি রয়েছে:

  • নীচের মতো একটি org ফাইলের মধ্যে একটি চিত্র ফাইল অন্তর্ভুক্ত রয়েছে।
  • পিডিএফ ফাইল myimage.pdf
# ()convertfrompdf:t
[[./myimage.png]]

চিত্র ফাইলগুলিতে পিডিএফকে স্বয়ংক্রিয় রূপান্তর করার কাজ

(defun org-include-img-from-pdf (&rest _)
  "Convert pdf files to image files in org-mode bracket links.

    # ()convertfrompdf:t # This is a special comment; tells that the upcoming
                         # link points to the to-be-converted-to file.
    # If you have a foo.pdf that you need to convert to foo.png, use the
    # foo.png file name in the link.
    [[./foo.png]]
"
  (interactive)
  (if (executable-find "convert")
      (save-excursion
        (goto-char (point-min))
        (while (re-search-forward "^[ \t]*#\\s-+()convertfrompdf\\s-*:\\s-*t"
                                  nil :noerror)
          ;; Keep on going to the next line till it finds a line with bracketed
          ;; file link.
          (while (progn
                   (forward-line 1)
                   (not (looking-at org-bracket-link-regexp))))
          ;; Get the sub-group 1 match, the link, from `org-bracket-link-regexp'
          (let ((link (match-string-no-properties 1)))
            (when (stringp link)
              (let* ((imgfile (expand-file-name link))
                     (pdffile (expand-file-name
                               (concat (file-name-sans-extension imgfile)
                                       "." "pdf")))
                     (cmd (concat "convert -density 96 -quality 85 "
                                  pdffile " " imgfile)))
                (when (and (file-readable-p pdffile)
                           (file-newer-than-file-p pdffile imgfile))
                  ;; This block is executed only if pdffile is newer than
                  ;; imgfile or if imgfile does not exist.
                  (shell-command cmd)
                  (message "%s" cmd)))))))
    (user-error "`convert' executable (part of Imagemagick) is not found")))

এই ফাংশনটি কখন চালানো হবে তা নির্দিষ্ট করতে হুক সেটআপ

(defun my/org-include-img-from-pdf-before-save ()
  "Execute `org-include-img-from-pdf' just before saving the file."
    (add-hook 'before-save-hook #'org-include-img-from-pdf nil :local))
(add-hook 'org-mode-hook #'my/org-include-img-from-pdf-before-save)

;; If you want to attempt to auto-convert PDF to PNG  only during exports, and not during each save.
;; (with-eval-after-load 'ox
;;   (add-hook 'org-export-before-processing-hook #'org-include-img-from-pdf))

কোড + এমডব্লুই


এর অর্থ কি কোনও রফতানি হওয়া ফাইল পিডিএফের পরিবর্তে পিএনজি ব্যবহার করে?
gdkrmr
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.