在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Prawn: Fast, Nimble PDF Generation For RubyPrawn is a pure Ruby PDF generation library that provides a lot of greatfunctionality while trying to remain simple and reasonably performant. Here aresome of the important features we provide:
Should You Use Prawn?If you are looking for a highly flexible PDF document generation system, Prawnmight be the tool for you. It is not a reporting tool or a publishing toolchain,though it could be fairly easily used to build those things. One thing Prawn is not, and will never be, is an HTML to PDF generator. Forthose needs, consider looking into FlyingSaucer via JRuby, or one of the WebKitbased tools, like Wicked or PDFKit. We do have basic support for inline stylingbut it is limited to a very small subset of functionality and is not suitablefor rendering rich HTML documents. Supported Ruby Versions and ImplementationsBecause Prawn is pure Ruby and all of its runtime dependencies are maintained byus, it should work pretty much anywhere. We officially support all Ruby versionssuported by Ruby Core Team and JRuby versions of matching Ruby version. Howeverwe will accept patches to fix problems on other Ruby platforms if they aren'ttoo invasive. Installing PrawnPrawn is distributed via RubyGems, and can be installed the usual way that youinstall gems: by simply typing You can also install from git if you'd like, the master branch contains thelatest developments, and stable represents the latest bug fixes to thecurrently released version of Prawn. If you go this route, using Bundler isencouraged. Hello World!If the following code runs and produces a working PDF file, you've successfullyinstalled Prawn. require "prawn"Prawn::Document.generate("hello.pdf") do text "Hello World!"end Of course, you'll probably want to do more interesting things than that... ManualFelipe Doria provided us with a beautiful system for generating a user manualfrom our examples. This can be generated from the prawn source or you candownload a pre-generated snapshot of it at http://prawnpdf.org/manual.pdf Note that while we will try to keep the downloadable manual up to date, thatit's provided as a convenience only and you should generate the manual yourselfif you want to be sure the code in it actually runs and works as expected. Tobuild the manual, here's what you need to do:
Release PoliciesBefore upgrading Prawn on one of your projects, you should read our APIcompatibilityguidelines. Generally speaking, you can expect tiny and minor version updates toalways be safe upgrades, but major updates can introduce incompatibilities. Be sure to read the release notes inCHANGELOG.md eachtime we cut a new release, and lock your gems accordingly. SupportThe easiest way to get help with Prawn is to post a message to our mailing list: http://groups.google.com/group/prawn-ruby Feel free to post any Prawn related question there, our community is veryresponsive and will be happy to help you figure out how to use Prawn, or helpyou determine whether it's the right tool for the task you are working on. Please make your posts to the list as specific as possible, including codesamples and output where relevant. Do not post any information that should notbe shared publicly, and be sure to reduce your example code as much as possibleso that those who are responding to your question can more easily see what theissue might be. Code of ConductPrawn adheres to the Contributor Covenant.Unacceptable behavior can be reported to [email protected] which is monitoredby the core team. ContributingIf you've found a bug or want to submit a patch, please enter a ticket into ourGitHub tracker. We strongly encourage bug reports to come with failing tests or at least areduced example that demonstrates the problem. Similarly, patches should includetests, API documentation, and an update to the manual where relevant. Feel freeto send a pull request early though, if you just want some feedback or a codereview before preparing your code to be merged. If you are unsure about whether or not you've found a bug, or want to check tosee whether we'd be interested in the feature you want to add before you startworking on it, feel free to post to our mailing list. You can run our test suite in a few different ways:
These filters make it possible for us to add failing test cases for bugs thatare currently being researched or worked on, without breaking the typical fullsuite run. Maintenance teamPrawn has always been heavily dependent on community contributions, with dozensof people contributing code over the year. In that sense, the lines have blurredto the point where we no longer have a strong distinction between coredevelopers and contributors. That said, there are a few folks who have been responsible for cutting releases,merging important pull requests, and making major decisions about the overalldirection of the project. Current maintainersThese are the folks to contact if you have a maintenance-related issue withPrawn:
Inactive maintainersThese folks have helped out in a maintenance role in the past, but are no longeractively involved in the project:
LicensePrawn is released under a slightly modified form of the License of Ruby,allowing you to choose between Matz's terms, the GPLv2, or GPLv3. For details,please see the LICENSE, GPLv2, and GPLv3 files. If you contribute to Prawn, you will retain your own copyright but must agree tolicense your code under the same terms as the project itself. HistoryPrawn was originally developed by GregoryBrown, under the auspices of the RubyMendicant Project, a grassroots initiative in which the Ruby communitycollectively provided funding so that Gregory could take several months off fromwork to focus on this project. Over the last several years, we've received code contributions from dozens ofpeople, which is amazing considering the low-level nature of this project. Youcan find the full list of folks who have at least one patch accepted to Prawn onGitHub Contributors page. After a long period of inactivity, Prawn reached its 1.0 milestone in 2014thanks to some modest funding provided to Gregory by Madriska, Inc. (BradEdiger's company). |
请发表评论