asposewordsjavaforruby 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gempackage +3 -0
- data/LICENSE +21 -0
- data/README.md +2 -0
- data/Rakefile +2 -0
- data/asposewordsjavaforruby.gemspec +27 -0
- data/config/aspose.yml +5 -0
- data/data/Field.RemoveField.doc +0 -0
- data/data/LoadTxt.txt +15 -0
- data/data/Template.doc +0 -0
- data/data/Test.Styles.doc +0 -0
- data/data/TestAutofittables.doc +0 -0
- data/data/TestComments.doc +0 -0
- data/data/TestCompressImages.docx +0 -0
- data/data/TestFile.doc +0 -0
- data/data/TestWatermark.doc +0 -0
- data/data/bookmarks/Template.doc +0 -0
- data/data/bookmarks/TestDefect1352.doc +0 -0
- data/data/document/TestFile.doc +0 -0
- data/data/document/TestRemoveBreaks.doc +0 -0
- data/data/joiningandappending/TestFile.Destination.doc +0 -0
- data/data/joiningandappending/TestFile.DestinationList.doc +0 -0
- data/data/joiningandappending/TestFile.Source.doc +0 -0
- data/data/joiningandappending/TestFile.SourceList.doc +0 -0
- data/data/joiningandappending/TestFile.SourcePageSetup.doc +0 -0
- data/data/mailmerge/Template.doc +0 -0
- data/data/mailmerge/TestFile.doc +0 -0
- data/data/quickstart/Document.doc +0 -0
- data/data/quickstart/HelloWorld.docx +0 -0
- data/data/quickstart/MailMerge.doc +0 -0
- data/data/quickstart/ReplaceSimple.doc +0 -0
- data/data/quickstart/TestFile.Destination.doc +0 -0
- data/data/quickstart/TestFile.Source.doc +0 -0
- data/jars/aspose-words-15.4.0.jar +0 -0
- data/lib/asposewordsjavaforruby.rb +71 -0
- data/lib/asposewordsjavaforruby/addwatermark.rb +84 -0
- data/lib/asposewordsjavaforruby/appenddoc.rb +24 -0
- data/lib/asposewordsjavaforruby/appenddocument.rb +229 -0
- data/lib/asposewordsjavaforruby/applylicense.rb +16 -0
- data/lib/asposewordsjavaforruby/asposewordsjava.rb +24 -0
- data/lib/asposewordsjavaforruby/autofittables.rb +123 -0
- data/lib/asposewordsjavaforruby/bookmarks.rb +132 -0
- data/lib/asposewordsjavaforruby/checkformat.rb +70 -0
- data/lib/asposewordsjavaforruby/compressimages.rb +53 -0
- data/lib/asposewordsjavaforruby/doc2pdf.rb +15 -0
- data/lib/asposewordsjavaforruby/doctohtml.rb +26 -0
- data/lib/asposewordsjavaforruby/extractcontent.rb +395 -0
- data/lib/asposewordsjavaforruby/findandreplace.rb +29 -0
- data/lib/asposewordsjavaforruby/helloworld.rb +26 -0
- data/lib/asposewordsjavaforruby/imagetopdf.rb +71 -0
- data/lib/asposewordsjavaforruby/insertnestedfields.rb +39 -0
- data/lib/asposewordsjavaforruby/loadandsavetodisk.rb +20 -0
- data/lib/asposewordsjavaforruby/loadandsavetostream.rb +32 -0
- data/lib/asposewordsjavaforruby/loadtxt.rb +14 -0
- data/lib/asposewordsjavaforruby/mergefield.rb +45 -0
- data/lib/asposewordsjavaforruby/nodes.rb +29 -0
- data/lib/asposewordsjavaforruby/processcomments.rb +72 -0
- data/lib/asposewordsjavaforruby/removebreaks.rb +65 -0
- data/lib/asposewordsjavaforruby/removefield.rb +23 -0
- data/lib/asposewordsjavaforruby/saveasmultipagetiff.rb +26 -0
- data/lib/asposewordsjavaforruby/simplemailmerge.rb +23 -0
- data/lib/asposewordsjavaforruby/styles.rb +77 -0
- data/lib/asposewordsjavaforruby/updatefields.rb +62 -0
- data/lib/asposewordsjavaforruby/version.rb +3 -0
- metadata +65 -2
data/Gempackage
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2001-2015 Aspose Pty Ltd
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'asposewordsjavaforruby/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'asposewordsjavaforruby'
|
8
|
+
spec.version = Asposewordsjavaforruby::VERSION
|
9
|
+
spec.authors = ['Aspose Marketplace']
|
10
|
+
spec.email = ['marketplace@aspose.com']
|
11
|
+
spec.summary = %q{A Ruby gem to work with aspose.words libraries}
|
12
|
+
spec.description = %q{AsposeWordsJavaforRuby is a Ruby gem that can help working with aspose.words libraries}
|
13
|
+
spec.homepage = 'https://github.com/asposemarketplace/Aspose_Words_Java_for_Ruby'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.7'
|
22
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
23
|
+
spec.add_development_dependency 'rspec'
|
24
|
+
|
25
|
+
spec.add_dependency 'rjb', '~> 1.5.3'
|
26
|
+
|
27
|
+
end
|
data/config/aspose.yml
ADDED
Binary file
|
data/data/LoadTxt.txt
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
Despite the fact txt format itself provides us with only "text" features for document lay-out, an ordinary txt file may contains many different pieces of formatting.
|
2
|
+
One of the text features is using "Tab" key to make indented paragraphs.
|
3
|
+
Paragraphs also may be nested within one another by using multiple "Tab" to increase the indent.
|
4
|
+
|
5
|
+
Many txt files aslo contain lists formatted with bullets. The bullet symbol may take any of a variety of shapes, such as:
|
6
|
+
- circular.
|
7
|
+
- square.
|
8
|
+
- diamond.
|
9
|
+
- arrow.
|
10
|
+
- etc.
|
11
|
+
|
12
|
+
An alternative method to format data is to use a numbered list. Here is some examples of using numbers and characters for making numbered list:
|
13
|
+
1. Arabic numerals (1, 2, 3, ...).
|
14
|
+
2. Roman numerals (I, II, III, ... or i, ii, iii, ...).
|
15
|
+
3. Letters (A, B, C, ... or a, b, c, ...).
|
data/data/Template.doc
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/data/TestFile.doc
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require_relative 'asposewordsjavaforruby/version'
|
2
|
+
require_relative 'asposewordsjavaforruby/asposewordsjava'
|
3
|
+
require 'logger'
|
4
|
+
require 'rjb'
|
5
|
+
|
6
|
+
module Asposewordsjavaforruby
|
7
|
+
|
8
|
+
class << self
|
9
|
+
attr_accessor :aspose_words_config
|
10
|
+
end
|
11
|
+
|
12
|
+
def initialize_aspose_words
|
13
|
+
aspose_jars_dir = Asposewordsjavaforruby.aspose_words_config ? Asposewordsjavaforruby.aspose_words_config['jar_dir'] : nil
|
14
|
+
aspose_license_path = Asposewordsjavaforruby.aspose_words_config ? Asposewordsjavaforruby.aspose_words_config['license_path'] : nil
|
15
|
+
jvm_args = Asposewordsjavaforruby.aspose_words_config ? Asposewordsjavaforruby.aspose_words_config['jvm_args'] : nil
|
16
|
+
|
17
|
+
load_aspose_jars(aspose_jars_dir, jvm_args)
|
18
|
+
load_aspose_license(aspose_license_path)
|
19
|
+
end
|
20
|
+
|
21
|
+
def load_aspose_license(aspose_license_path)
|
22
|
+
if aspose_license_path && File.exist?(aspose_license_path)
|
23
|
+
set_license(File.join(aspose_license_path))
|
24
|
+
else
|
25
|
+
logger = Logger.new(STDOUT)
|
26
|
+
logger.level = Logger::WARN
|
27
|
+
logger.warn('Using the non licensed aspose jar. Please specify path to your aspose license directory in config/aspose.yml file!')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def load_aspose_jars(aspose_jars_dir, jvm_args)
|
32
|
+
if aspose_jars_dir && File.exist?(aspose_jars_dir)
|
33
|
+
jardir = File.join(aspose_jars_dir, '**', '*.jar')
|
34
|
+
else
|
35
|
+
jardir = File.join(File.dirname(File.dirname(__FILE__)), 'jars', '**', '*.jar')
|
36
|
+
end
|
37
|
+
|
38
|
+
if jvm_args
|
39
|
+
args = jvm_args.split(' ') << '-Djava.awt.headless=true'
|
40
|
+
logger = Logger.new(STDOUT)
|
41
|
+
logger.level = Logger::DEBUG
|
42
|
+
logger.debug("JVM args : #{args}")
|
43
|
+
Rjb::load(classpath = Dir.glob(jardir).join(':'), jvmargs=args)
|
44
|
+
else
|
45
|
+
Rjb::load(classpath = Dir.glob(jardir).join(':'), jvmargs=['-Djava.awt.headless=true'])
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
def input_file(file)
|
51
|
+
Rjb::import('java.io.FileInputStream').new(file)
|
52
|
+
end
|
53
|
+
|
54
|
+
def set_license(aspose_license_file)
|
55
|
+
begin
|
56
|
+
fstream = input_file(aspose_license_file)
|
57
|
+
license = Rjb::import('com.aspose.api.License').new()
|
58
|
+
license.setLicense(fstream)
|
59
|
+
rescue Exception => ex
|
60
|
+
logger = Logger.new(STDOUT)
|
61
|
+
logger.level = Logger::ERROR
|
62
|
+
logger.error("Could not load the license file : #{ex}")
|
63
|
+
fstream.close() if fstream
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def self.configure_aspose_words config
|
68
|
+
Asposewordsjavaforruby.aspose_words_config = config
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module Asposewordsjavaforruby
|
2
|
+
module AddWatermark
|
3
|
+
def initialize()
|
4
|
+
# The path to the documents directory.
|
5
|
+
data_dir = File.dirname(File.dirname(File.dirname(__FILE__))) + '/data/'
|
6
|
+
|
7
|
+
doc = Rjb::import('com.aspose.words.Document').new(data_dir + "TestWatermark.doc")
|
8
|
+
|
9
|
+
insert_watermark_text(doc, "CONFIDENTIAL")
|
10
|
+
|
11
|
+
doc.save(data_dir + "TestWatermark Out.doc")
|
12
|
+
end
|
13
|
+
|
14
|
+
=begin
|
15
|
+
Inserts a watermark into a document.
|
16
|
+
|
17
|
+
@param doc The input document.
|
18
|
+
@param watermarkText Text of the watermark.
|
19
|
+
=end
|
20
|
+
def insert_watermark_text(doc, watermark_text)
|
21
|
+
# Create a watermark shape. This will be a WordArt shape.
|
22
|
+
# You are free to try other shape types as watermarks.
|
23
|
+
shape_type = Rjb::import("com.aspose.words.ShapeType")
|
24
|
+
watermark = Rjb::import("com.aspose.words.Shape").new(doc, shape_type.TEXT_PLAIN_TEXT)
|
25
|
+
|
26
|
+
# Set up the text of the watermark.
|
27
|
+
watermark.getTextPath().setText(watermark_text)
|
28
|
+
watermark.getTextPath().setFontFamily("Arial")
|
29
|
+
watermark.setWidth(500)
|
30
|
+
watermark.setHeight(100)
|
31
|
+
|
32
|
+
# Text will be directed from the bottom-left to the top-right corner.
|
33
|
+
watermark.setRotation(-40)
|
34
|
+
|
35
|
+
# Remove the following three lines if you need a solid black text.
|
36
|
+
color = Rjb::import("java.awt.Color")
|
37
|
+
watermark.getFill().setColor(color.GRAY) # Try LightGray to get more Word-style watermark
|
38
|
+
watermark.setStrokeColor(color.GRAY) # Try LightGray to get more Word-style watermark
|
39
|
+
|
40
|
+
# Place the watermark in the page center.
|
41
|
+
relativeHorizontalPosition = Rjb::import("com.aspose.words.RelativeHorizontalPosition")
|
42
|
+
watermark.setRelativeHorizontalPosition(relativeHorizontalPosition.PAGE)
|
43
|
+
watermark.setRelativeVerticalPosition(relativeHorizontalPosition.PAGE)
|
44
|
+
|
45
|
+
wrapType = Rjb::import("com.aspose.words.WrapType")
|
46
|
+
watermark.setWrapType(wrapType.NONE)
|
47
|
+
|
48
|
+
verticalAlignment = Rjb::import("com.aspose.words.VerticalAlignment")
|
49
|
+
watermark.setVerticalAlignment(verticalAlignment.CENTER)
|
50
|
+
|
51
|
+
horizontalAlignment = Rjb::import("com.aspose.words.HorizontalAlignment")
|
52
|
+
watermark.setHorizontalAlignment(horizontalAlignment.CENTER)
|
53
|
+
|
54
|
+
# Create a new paragraph and append the watermark to this paragraph.
|
55
|
+
watermarkPara = Rjb::import("com.aspose.words.Paragraph").new(doc)
|
56
|
+
watermarkPara.appendChild(watermark)
|
57
|
+
sects = doc.getSections().toArray()
|
58
|
+
|
59
|
+
# Insert the watermark into all headers of each document section.
|
60
|
+
sects.each do |sect|
|
61
|
+
headerFooterType = Rjb::import("com.aspose.words.HeaderFooterType")
|
62
|
+
# There could be up to three different headers in each section, since we want
|
63
|
+
# the watermark to appear on all pages, insert into all headers.
|
64
|
+
insert_watermark_into_header(watermarkPara, sect, headerFooterType.HEADER_PRIMARY)
|
65
|
+
insert_watermark_into_header(watermarkPara, sect, headerFooterType.HEADER_FIRST)
|
66
|
+
insert_watermark_into_header(watermarkPara, sect, headerFooterType.HEADER_EVEN)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def insert_watermark_into_header(watermarkPara, sect, headerType)
|
71
|
+
header = sect.getHeadersFooters().getByHeaderFooterType(headerType)
|
72
|
+
|
73
|
+
if header.nil? then
|
74
|
+
# There is no header of the specified type in the current section, create it.
|
75
|
+
header = Rjb::import("com.aspose.words.HeaderFooter").new(sect.getDocument(), headerType)
|
76
|
+
sect.getHeadersFooters().add(header)
|
77
|
+
end
|
78
|
+
|
79
|
+
# Insert a clone of the watermark into the header.
|
80
|
+
header.appendChild(watermarkPara.deepClone(true))
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Asposewordsjavaforruby
|
2
|
+
module AppendDoc
|
3
|
+
def initialize()
|
4
|
+
# Append document.
|
5
|
+
append_documents()
|
6
|
+
end
|
7
|
+
|
8
|
+
def append_documents()
|
9
|
+
data_dir = File.dirname(File.dirname(File.dirname(__FILE__))) + '/data/quickstart/'
|
10
|
+
|
11
|
+
# Load the destination and source documents from disk.
|
12
|
+
dst_doc = Rjb::import('com.aspose.words.Document').new(data_dir + "TestFile.Destination.doc")
|
13
|
+
src_doc = Rjb::import('com.aspose.words.Document').new(data_dir + "TestFile.Source.doc")
|
14
|
+
|
15
|
+
importformatmode = Rjb::import('com.aspose.words.ImportFormatMode')
|
16
|
+
source_formating = importformatmode.KEEP_SOURCE_FORMATTING
|
17
|
+
|
18
|
+
# Append the source document to the destination document while keeping the original formatting of the source document.
|
19
|
+
dst_doc.appendDocument(src_doc, source_formating)
|
20
|
+
dst_doc.save(data_dir + "TestFile Out.docx")
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,229 @@
|
|
1
|
+
module Asposewordsjavaforruby
|
2
|
+
module AppendDocument
|
3
|
+
def initialize()
|
4
|
+
# The path to the documents directory.
|
5
|
+
@data_dir = File.dirname(File.dirname(File.dirname(__FILE__))) + '/data/joiningandappending/'
|
6
|
+
|
7
|
+
simple_append_document()
|
8
|
+
keep_source_formatting()
|
9
|
+
use_destination_styles()
|
10
|
+
join_continuous()
|
11
|
+
join_new_page()
|
12
|
+
restart_page_numbering()
|
13
|
+
link_headers_footers()
|
14
|
+
unlink_headers_footers()
|
15
|
+
remove_source_headers_footers()
|
16
|
+
different_page_setup()
|
17
|
+
end
|
18
|
+
|
19
|
+
=begin
|
20
|
+
Shows how to append a document to the end of another document using no additional options.
|
21
|
+
=end
|
22
|
+
def simple_append_document()
|
23
|
+
# Load the documents to join.
|
24
|
+
dst_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Destination.doc")
|
25
|
+
src_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Source.doc")
|
26
|
+
|
27
|
+
# Append the source document to the destination document using no extra options.
|
28
|
+
import_format_mode = Rjb::import("com.aspose.words.ImportFormatMode")
|
29
|
+
dst_doc.appendDocument(src_doc, import_format_mode.KEEP_SOURCE_FORMATTING)
|
30
|
+
|
31
|
+
# Save the document.
|
32
|
+
dst_doc.save(@data_dir + "TestFile.SimpleAppendDocument Out.docx")
|
33
|
+
end
|
34
|
+
|
35
|
+
=begin
|
36
|
+
Shows how to append a document to another document while keeping the original formatting.
|
37
|
+
=end
|
38
|
+
def keep_source_formatting()
|
39
|
+
# Load the documents to join.
|
40
|
+
dst_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Destination.doc")
|
41
|
+
src_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Source.doc")
|
42
|
+
|
43
|
+
# Append the source document to the destination document using no extra options.
|
44
|
+
import_format_mode = Rjb::import("com.aspose.words.ImportFormatMode")
|
45
|
+
dst_doc.appendDocument(src_doc, import_format_mode.KEEP_SOURCE_FORMATTING)
|
46
|
+
|
47
|
+
# Save the document.
|
48
|
+
dst_doc.save(@data_dir + "TestFile.KeepSourceFormatting Out.docx")
|
49
|
+
end
|
50
|
+
|
51
|
+
=begin
|
52
|
+
Shows how to append a document to another document using the formatting of the destination document.
|
53
|
+
=end
|
54
|
+
def use_destination_styles()
|
55
|
+
# Load the documents to join.
|
56
|
+
dst_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Destination.doc")
|
57
|
+
src_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Source.doc")
|
58
|
+
|
59
|
+
# Append the source document to the destination document using no extra options.
|
60
|
+
import_format_mode = Rjb::import("com.aspose.words.ImportFormatMode")
|
61
|
+
dst_doc.appendDocument(src_doc, import_format_mode.USE_DESTINATION_STYLES)
|
62
|
+
|
63
|
+
# Save the document.
|
64
|
+
dst_doc.save(@data_dir + "TestFile.UseDestinationStyles Out.docx")
|
65
|
+
end
|
66
|
+
|
67
|
+
=begin
|
68
|
+
Shows how to append a document to another document so the content flows continuously.
|
69
|
+
=end
|
70
|
+
def join_continuous()
|
71
|
+
# Load the documents to join.
|
72
|
+
dst_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Destination.doc")
|
73
|
+
src_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Source.doc")
|
74
|
+
|
75
|
+
# Make the document appear straight after the destination documents content.
|
76
|
+
section_start = Rjb::import("com.aspose.words.SectionStart")
|
77
|
+
src_doc.getFirstSection().getPageSetup().setSectionStart(section_start.CONTINUOUS)
|
78
|
+
|
79
|
+
# Append the source document using the original styles found in the source document.
|
80
|
+
import_format_mode = Rjb::import("com.aspose.words.ImportFormatMode")
|
81
|
+
dst_doc.appendDocument(src_doc, import_format_mode.KEEP_SOURCE_FORMATTING)
|
82
|
+
|
83
|
+
# Save the document.
|
84
|
+
dst_doc.save(@data_dir + "TestFile.JoinContinuous Out.docx")
|
85
|
+
end
|
86
|
+
|
87
|
+
=begin
|
88
|
+
Shows how to append a document to another document so it starts on a new page.
|
89
|
+
=end
|
90
|
+
def join_new_page()
|
91
|
+
# Load the documents to join.
|
92
|
+
dst_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Destination.doc")
|
93
|
+
src_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Source.doc")
|
94
|
+
|
95
|
+
# Set the appended document to start on a new page.
|
96
|
+
section_start = Rjb::import("com.aspose.words.SectionStart")
|
97
|
+
src_doc.getFirstSection().getPageSetup().setSectionStart(section_start.NEW_PAGE)
|
98
|
+
|
99
|
+
# Append the source document using the original styles found in the source document.
|
100
|
+
import_format_mode = Rjb::import("com.aspose.words.ImportFormatMode")
|
101
|
+
dst_doc.appendDocument(src_doc, import_format_mode.KEEP_SOURCE_FORMATTING)
|
102
|
+
|
103
|
+
# Save the document.
|
104
|
+
dst_doc.save(@data_dir + "TestFile.JoinNewPage Out.docx")
|
105
|
+
end
|
106
|
+
|
107
|
+
=begin
|
108
|
+
Shows how to append a document to another document with page numbering restarted.
|
109
|
+
=end
|
110
|
+
def restart_page_numbering()
|
111
|
+
# Load the documents to join.
|
112
|
+
dst_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Destination.doc")
|
113
|
+
src_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Source.doc")
|
114
|
+
|
115
|
+
# Set the appended document to start on a new page.
|
116
|
+
section_start = Rjb::import("com.aspose.words.SectionStart")
|
117
|
+
src_doc.getFirstSection().getPageSetup().setSectionStart(section_start.NEW_PAGE)
|
118
|
+
|
119
|
+
# Restart the page numbering for the document to be appended.
|
120
|
+
src_doc.getFirstSection().getPageSetup().setRestartPageNumbering(true)
|
121
|
+
|
122
|
+
# Append the source document using the original styles found in the source document.
|
123
|
+
import_format_mode = Rjb::import("com.aspose.words.ImportFormatMode")
|
124
|
+
dst_doc.appendDocument(src_doc, import_format_mode.KEEP_SOURCE_FORMATTING)
|
125
|
+
|
126
|
+
# Save the document.
|
127
|
+
dst_doc.save(@data_dir + "TestFile.RestartPageNumbering Out.docx")
|
128
|
+
end
|
129
|
+
|
130
|
+
=begin
|
131
|
+
Shows how to append a document to another document and continue headers and footers from the destination document.
|
132
|
+
=end
|
133
|
+
def link_headers_footers()
|
134
|
+
# Load the documents to join.
|
135
|
+
dst_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Destination.doc")
|
136
|
+
src_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Source.doc")
|
137
|
+
|
138
|
+
# Set the appended document to start on a new page.
|
139
|
+
section_start = Rjb::import("com.aspose.words.SectionStart")
|
140
|
+
src_doc.getFirstSection().getPageSetup().setSectionStart(section_start.NEW_PAGE)
|
141
|
+
|
142
|
+
# Link the headers and footers in the source document to the previous section.
|
143
|
+
# This will override any headers or footers already found in the source document.
|
144
|
+
src_doc.getFirstSection().getHeadersFooters().linkToPrevious(true)
|
145
|
+
|
146
|
+
import_format_mode = Rjb::import("com.aspose.words.ImportFormatMode")
|
147
|
+
dst_doc.appendDocument(src_doc, import_format_mode.KEEP_SOURCE_FORMATTING)
|
148
|
+
|
149
|
+
# Save the document.
|
150
|
+
dst_doc.save(@data_dir + "TestFile.LinkHeadersFooters Out.docx")
|
151
|
+
end
|
152
|
+
|
153
|
+
=begin
|
154
|
+
Shows how to append a document to another document so headers and footers do not continue from the destination document.
|
155
|
+
=end
|
156
|
+
def unlink_headers_footers()
|
157
|
+
# Load the documents to join.
|
158
|
+
dst_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Destination.doc")
|
159
|
+
src_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Source.doc")
|
160
|
+
|
161
|
+
# Even a document with no headers or footers can still have the LinkToPrevious setting set to true.
|
162
|
+
# Unlink the headers and footers in the source document to stop this from continuing the headers and footers
|
163
|
+
# from the destination document.
|
164
|
+
src_doc.getFirstSection().getHeadersFooters().linkToPrevious(false)
|
165
|
+
|
166
|
+
import_format_mode = Rjb::import("com.aspose.words.ImportFormatMode")
|
167
|
+
dst_doc.appendDocument(src_doc, import_format_mode.KEEP_SOURCE_FORMATTING)
|
168
|
+
|
169
|
+
# Save the document.
|
170
|
+
dst_doc.save(@data_dir + "TestFile.UnlinkHeadersFooters Out.docx")
|
171
|
+
end
|
172
|
+
|
173
|
+
=begin
|
174
|
+
Shows how to append a document to another document so headers and footers do not continue from the destination document.
|
175
|
+
=end
|
176
|
+
def remove_source_headers_footers()
|
177
|
+
# Load the documents to join.
|
178
|
+
dst_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Destination.doc")
|
179
|
+
src_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Source.doc")
|
180
|
+
|
181
|
+
# Remove the headers and footers from each of the sections in the source document.
|
182
|
+
sections = src_doc.getSections().toArray()
|
183
|
+
sections.each do |section|
|
184
|
+
section.clearHeadersFooters()
|
185
|
+
end
|
186
|
+
|
187
|
+
# Even after the headers and footers are cleared from the source document, the "LinkToPrevious" setting
|
188
|
+
# for HeadersFooters can still be set. This will cause the headers and footers to continue from the destination
|
189
|
+
# document. This should set to false to avoid this behaviour.
|
190
|
+
src_doc.getFirstSection().getHeadersFooters().linkToPrevious(false)
|
191
|
+
|
192
|
+
import_format_mode = Rjb::import("com.aspose.words.ImportFormatMode")
|
193
|
+
dst_doc.appendDocument(src_doc, import_format_mode.KEEP_SOURCE_FORMATTING)
|
194
|
+
|
195
|
+
# Save the document.
|
196
|
+
dst_doc.save(@data_dir + "TestFile.RemoveSourceHeadersFooters Out.docx")
|
197
|
+
end
|
198
|
+
|
199
|
+
=begin
|
200
|
+
Shows how to append a document to another document continuously which has different page settings.
|
201
|
+
=end
|
202
|
+
def different_page_setup()
|
203
|
+
# Load the documents to join.
|
204
|
+
dst_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Destination.doc")
|
205
|
+
src_doc = Rjb::import("com.aspose.words.Document").new(@data_dir + "TestFile.Source.doc")
|
206
|
+
|
207
|
+
# Set the source document to continue straight after the end of the destination document.
|
208
|
+
# If some page setup settings are different then this may not work and the source document will appear
|
209
|
+
# on a new page.
|
210
|
+
section_start = Rjb::import("com.aspose.words.SectionStart")
|
211
|
+
src_doc.getFirstSection().getPageSetup().setSectionStart(section_start.CONTINUOUS)
|
212
|
+
|
213
|
+
# To ensure this does not happen when the source document has different page setup settings make sure the
|
214
|
+
# settings are identical between the last section of the destination document.
|
215
|
+
# If there are further continuous sections that follow on in the source document then this will need to be
|
216
|
+
# repeated for those sections as well.
|
217
|
+
src_doc.getFirstSection().getPageSetup().setPageWidth(dst_doc.getLastSection().getPageSetup().getPageWidth())
|
218
|
+
src_doc.getFirstSection().getPageSetup().setPageHeight(dst_doc.getLastSection().getPageSetup().getPageHeight())
|
219
|
+
src_doc.getFirstSection().getPageSetup().setOrientation(dst_doc.getLastSection().getPageSetup().getOrientation())
|
220
|
+
|
221
|
+
import_format_mode = Rjb::import("com.aspose.words.ImportFormatMode")
|
222
|
+
dst_doc.appendDocument(src_doc, import_format_mode.KEEP_SOURCE_FORMATTING)
|
223
|
+
|
224
|
+
# Save the document.
|
225
|
+
dst_doc.save(@data_dir + "TestFile.DifferentPageSetup Out.docx")
|
226
|
+
end
|
227
|
+
|
228
|
+
end
|
229
|
+
end
|