![](https://products-qa.fileformat.com/fa/pdf/ruby/prawn/header-image.png)
Prawn
تولید سریع PDF از طریق کتابخانه روبی منبع باز
Ruby PDF API رایگان که به برنامهنویسان اجازه میدهد فایلهای PDF را ایجاد و تغییر دهند. درج، ویرایش گرافیک، و کشیدن متن در یک صفحه PDF در Ruby Apps.
فرمت سند قابل حمل (PDF) یک فرمت فایل قابل اعتماد و مطمئن برای ارائه، اشتراک گذاری و چاپ فایل ها در سراسر جهان است. کتابخانه روبی منبع باز Prawn عملکرد کاملی را برای کار با اسناد PDF با استفاده از کتابخانه روبی ارائه کرده است. استفاده از کتابخانه بسیار آسان است و به خوبی مستند شده است که کار توسعه دهنده را آسان می کند. این به توسعه دهندگان کمک می کند تا به راحتی یک سیستم تولید اسناد PDF بسیار انعطاف پذیر ایجاد کنند.
کتابخانه Prawn دارای چندین ویژگی مهم است که توسعه دهندگان نرم افزار را قادر می سازد اسناد PDF خود را به راحتی مدیریت کنند، مانند ایجاد PDF از ابتدا، جاسازی تصویر PNG و JPG، افزودن طراحی برداری به PDF، استفاده از فونت های داخلی و فونت های TrueType، پشتیبانی از رمزگذاری. ، سند PDF را با استفاده از رمز عبور ایمن کنید، پشتیبانی از رندر متن، پشتیبانی از فونت های مبتنی بر UTF-8، رندر متن از راست به چپ، پشتیبانی خطوط کلی و بسیاری موارد دیگر.
شروع کار با میگو
برای نصب Prawn روی سیستم خود، لطفا دستور زیر را اجرا کنید:
میگو را از طریق RubyGems نصب کنید
gem install prawn
ایجاد فایل های PDF از طریق Ruby Library
کتابخانه Ruby منبع باز Prawn توسعه دهندگان نرم افزار را قادر می سازد تا اسناد PDF را با استفاده از چند خط کد Ruby به صورت برنامه نویسی ایجاد کنند. این کتابخانه 3 روش مختلف برای ایجاد سند PDF با تنظیمات و فونت های پیش فرض ارائه کرده است. اینها از طریق انتساب، بلوک ضمنی یا بلوک صریح هستند. پس از ایجاد، می توانید به راحتی به هر قسمت از سند PDF خود دسترسی داشته باشید و آن را تغییر دهید. شما به راحتی می توانید یک صفحه جدید اضافه کنید، اندازه صفحه و حاشیه ها را تنظیم کنید، سبک فونت را تغییر دهید، قالب بندی را اعمال کنید و موارد دیگر.
ایجاد و رندر فایل PDF از طریق Ruby
# Using explicit block form and rendering to a file
content = "Hello World"
Prawn::Document.generate "example.pdf" do |pdf|
# self here is left alone
pdf.font "Times-Roman"
pdf.draw_text content, :at => [200,720], :size => 32
end
درج و ویرایش گرافیک در PDF
کتابخانه Prawn به توسعه دهندگان نرم افزار این قدرت را می دهد که با استفاده از کد Ruby، نقشه های برداری را به اسناد PDF خود اضافه کنند. توسعه دهندگان می توانند به راحتی خطوط، چند ضلعی ها، منحنی ها، دایره ها و غیره را به هر مکان دلخواه خود در صفحه PDF بکشند. این کتابخانه چندین عملکرد مهم برای کار با گرافیک را شامل میشود، مانند پر کردن رنگها، اعمال سبک و الگوی خط تیره، تنظیم ضخامت خط و اعمال رنگ بر روی آن، استفاده از حالت ترکیبی، اعمال تبدیل و همچنین شفافیت و غیره.
استفاده از تصاویر در اسناد PDF
کتابخانه Ruby منبع باز Prawn از درج تصاویر در فایل های PDF با استفاده از دستورات Ruby پشتیبانی می کند. در حال حاضر، این کتابخانه از تصاویر JPEG و PNG پشتیبانی می کند. چندین ویژگی مهم برای مدیریت تصاویر شما در یک فایل PDF مانند تنظیم موقعیت، پشتیبانی از مقیاس بندی تصویر، تنظیم عرض و ارتفاع تصویر به طور جداگانه، متناسب کردن تصویر به صورت متناسب و غیره ارائه شده است.
از طریق Ruby، تصویر و مقیاس مناسب را در PDF ایجاد کنید
Prawn::Document.generate("image2.pdf", :page_layout => :landscape) do
pigs = "#{Prawn::DATADIR}/images/pigs.jpg"
image pigs, :at => [50,450], :width => 450
dice = "#{Prawn::DATADIR}/images/dice.png"
image dice, :at => [50, 450], :scale => 0.75
end
طراحی متن در صفحه PDF
کتابخانه Prawn به نرمافزارهای حرفهای این امکان را میدهد تا متن را روی صفحه PDF داخل برنامه Ruby خود به راحتی ترسیم کنند. شما می توانید به راحتی شروع به کشیدن متن در یک موقعیت مشخص از یک صفحه PDF کنید. شما به راحتی می توانید موقعیت متن را تنظیم کنید، متن را بر اساس نیاز خود بچرخانید، اندازه فونت، پشتیبانی از یک خط و چند خط و موارد دیگر را اعمال کنید.
از طریق کتابخانه روبی، متن را روی صفحه PDF بکشید
def draw_text!(text, options)
unless font.unicode? || font.class.hide_m17n_warning || text.ascii_only?
warn "PDF's built-in fonts have very limited support for " \
"internationalized text.\nIf you need full UTF-8 support, " \
"consider using an external font instead.\n\nTo disable this " \
"warning, add the following line to your code:\n" \
"Prawn::Fonts::AFM.hide_m17n_warning = true\n"
font.class.hide_m17n_warning = true
end
x, y = map_to_absolute(options[:at])
add_text_content(text, x, y, options)
end