Comments (3)
I'm doing it like this:
# config/initializers/action_controller.rb
# Inspired by https://github.com/karnov/htmltoword/blob/master/lib/htmltoword/action_controller.rb
require 'rack/test'
require 'action_controller'
Mime::Type.register 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', :docx
ActionController::Renderers.add :docx do |filename, options|
# Converting works great except < and > are escaped in codes!
# http://stackoverflow.com/questions/30916575/converting-markdown-to-docx-using-pandoc-and-signs-in-code-is-translated-to
# https://github.com/alphabetum/pandoc-ruby/issues/14
document = PandocRuby.convert render_to_string(options), to: :docx
send_data document, filename: "#{filename}.docx",
type: Mime::DOCX,
disposition: 'attachment'
end
module ActionController
# For respond_with default
class Responder
def to_docx
if @default_response
@default_response.call(options)
else
controller.render({ docx: controller.action_name }.merge(options))
end
end
end
end
Now you can simply use views that create markdown, e.g. app/views/users/show.docx.erb
:
# Some title
## Hello, <%= user.name %>!
This is a paragraph.
I guess by tweaking the PandocRuby options you can easily provide HTML instead of markdown (just change the input format option).
from pandoc-ruby.
@jmuheim is it possible apply css styling for html to docx conversion? as far I have checked with inline css, it does not work. I found --css option in pandoc documentation, but nothing mentioned whether applicable for docx.
from pandoc-ruby.
I didn't check this out myself yet, but you can specify a template to be used:
pandoc -S --reference-docx twocolumns.docx -o UsersGuide.docx README
See http://pandoc.org/demos.html.
from pandoc-ruby.
Related Issues (20)
- Support for Pandoc "extensions"? HOT 2
- Hyphen stripped from options
- How do you open a docx file? HOT 5
- Providing nil for `input_string` to convert will cause a time out HOT 1
- Fails if there are spaces in the outfile HOT 2
- Pandoc deprecated --chapter in favor of --top-level-division=chapter HOT 1
- miss.. HOT 1
- It is not compatible with Pandoc's new way of adding/removing extensions HOT 1
- DOCX to HTML HOT 1
- Images failing when convert happens asynchronously HOT 1
- Improper handling of DOC file HOT 1
- Using Pathname objects for file arguments is broken in 2.1.2 and 2.1.3 HOT 4
- Outvar and context errors when used in Middleman (Patch included) HOT 2
- Test suite failures HOT 2
- I need to know what's PandocRuby's path to pandoc
- BUG: after last update get error. HOT 2
- Textile text block with trailing space not converted only when using `pandoc-ruby` HOT 1
- Input file names with spaces are not quoted HOT 1
- syntax error, unexpected keyword_rescue, expecting keyword_end HOT 3
- Tests not working against ruby 3.2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pandoc-ruby.