Excel, Word, PowerPoint�ɂ��PDF�o��

�` ExportAsFixedFormat���\�b�h�̗��p �`

2015/05/28

�@���T�C�g�́Apdf_out.zip�Ɋ܂܂�Ă��� pdf_out.txt ��Web�Ɍf�ڂ������̂ł��B

�@2015/05/28���_�ōŐV�� exlap.rb, wrdap.rb, pptap.rb ����������Ă��܂��B���̂R�‚́AExcel, Word, PowerPoint���������c���邽�߂�ruby�p���C�u�����ł��B


�s�ڎ��t


���͂��߂Ɂ�

�@�����ł́AExcel, Word, PowerPoint���������c����PDF�t�@�C�����o�͂�����@���L���܂��Bruby��win32ole�𗘗p���܂��B

�@���R�Ȃ���A�����R�‚�MS-Office�\�t�g���C���X�g�[������Ă��邱�Ƃ�O��ɂ��܂��BExportAsFixedFormat���\�b�h�𗘗p���܂��BOffice2007�ȍ~�łȂ��Ǝg���Ȃ����@�Ȃ̂Œ��ӂ��ĉ������B

�@�@�@�@

�@�܂��A�ٍ� exlap.rb, wrdap.rb, pptap.rb ��p���܂��B�������ruby���C�u�����ł��Bzip���k�t�@�C���ɓ������Ă���܂��B

�@exlap.rb�Ȃǂ�pdf_out���\�b�h��݂��܂����B���̐����������܂��B

�@�@�@�@

�@ExportAsFixedFormat�́A�����������PDF�܂���XPS�̃t�@�C���ɏ����o�����̂ł��B

�@����͈͂�ݒ肵�Ă���ƁA���͈̔͂����������o�����Ƃ��ł��܂��B

�@�Ƃ����Ă��A����͈͂̐ݒ肪�ǂ��Ȃ��Ă��邩�Ɋ֌W�Ȃ��A�S�����t�@�C���ɏ����o���̂��f�t�H���g�ɂȂ��Ă��܂��B

�@�@�@�@

�@���Ɍf����ruby�X�N���v�g�������������‹��͎��̂Ƃ���B

�@�@�@�@

���@XPS(XML Paper Specification)�́A�}�C�N���\�t�g�Ђ��J�������d�q�����L�q�̃t�H�[�}�b�g�ł��BXPS�̉{���\�t�g�������z�z����Ă���A����𗘗p����΁A����̃R���s���[�^�̋@���‹��ɂ�炸�A�I���W�i���̃C���[�W�𐳊m�ɍĐ��ł���悤�ł��B

�� �ڎ��ɖ߂�


1.�@Excel�ɂ��PDF�t�@�C���̏o��

�@Excel��ExportAsFixedFormat���\�b�h�ɂ‚��ċL���܂��B

�@�@�@�@

(1) �T���v���X�N���v�g

�@�ϐ�wb��Excel�̃��[�N�u�b�N�I�u�W�F�N�g���������Ă���ꍇ�Awb.ExportAsFixedFormat() ��p����ƁAPDF�t�@�C���������o�����Ƃ��ł��܂��B

�@�܂��̓T���v���X�N���v�g�������܂��Bruby�X�N���v�g�ł��B�ٍ�exlap.rb��p���܂��B

�@�f�ރf�[�^�͓��{��GDP�̐��ڂł��B

�@test01.xls, test01.pdf�����ɑ��݂��Ă���΂�����폜���A���̏�� test01.xls���쐬���āA�����PDF�t�@�C���ɏo�͂��܂��B

�@ExportAsFixedFormat�́APDF�t�@�C�����㏑���ŏo�͂���悤�Ȃ̂ŁA�\�ߊ�����PDF�t�@�C�����폜����K�v�͂Ȃ��Ǝv���܂����A�O�̂��ߍ폜���Ă��܂��B

�@�@�@�@

�|�|�|�| pdf01.rb ��������
# encoding: Windows-31J
require "exlap"
xls_file = "test01.xls"
File.unlink(xls_file)  if test(?e, xls_file)
pdf_file = "test01.pdf"
File.unlink(pdf_file)  if test(?e, pdf_file)
data_ary = Exl::str2ary(DATA.read, ",")
Exlap.new(xls_file) do |wb|  # Excel���N����test01.xls���J��
  ss = wb.fes  # ��̃��[�N�V�[�g��I��
  ss.from_a(data_ary)  # �f�ރf�[�^�̏�������
  ss.range_autofit  # �Z��������������
  ss.range_doublebox  # �r��������
  wb.save  # ���[�N�u�b�N�̕ۑ�
  wb.ExportAsFixedFormat('Type'=>XlTypePDF,
      'Filename'=>Exl::fullpath(pdf_file),
      'Quality'=>XlQualityStandard)
end

__END__
���{��GDP,(�P��: 10���~)
�N,����GDP,����GDP
2010,482384.40,512364.20
2011,471310.80,510044.60
2012,473784.30,517513.60
2013,478075.30,525365.80
2014,488609.54,530047.22
�|�|�|�| pdf01.rb �����܂�

�@�@�@�@

�@ExportAsFixedFormat�́A���[�N�u�b�N�I�u�W�F�N�g�����łȂ��A���[�N�V�[�g�A�`���[�g(Chart)�A�����W(Range)�I�u�W�F�N�g�ɂ‚��Ă��K�p�ł��܂��B

�@�Ȃ̂ŁA���pdf01.rb�ɂ����� wb.ExportAsFixedFormat �� ss.ExportAsFixedFormat �Ə��������Ă������܂��B�P���̃��[�N�V�[�g������PDF�o�͂��������ɂ������܂��B

�@����A���[�N�u�b�N�ɂ͂R���̃��[�N�V�[�g������킯�ł����A�Q���ڂƂR���ڂ͋�Ȃ̂ŁAPDF�ŏ����o�����̂͂P���ڂ̃V�[�g�݂̂ł��B���������āAExportAsFixedFormat�����[�N�u�b�N�ɓK�p���Ă����[�N�V�[�g�ɓK�p���Ă��A���ʂ͓����ł��B

�� �ڎ��ɖ߂�

(2) Excel��ExportAsFixedFormat���\�b�h�̈���

�@Excel��ExportAsFixedFormat�ɂ���������ɂ‚��āA�v�_���L���܂��B

�@�@�@�@

a. Type

�@�ۑ��`�����w��A�K�{���ځB

�@�g�p�ł���萔�͎��̂Ƃ���B

�萔�� ���l ����
XlTypePDF 0 PDF�`���ŕۑ�
XlTypeXPS 1 XPS�`���ŕۑ�

�@�@�@�@

b. Filename

�@�ۑ�����PDF�t�@�C���̖��O�B�ȗ��”\�B

�@�t���p�X���łȂ��ꍇ�A����������������ł́A�J�����g�f�B���N�g���ł͂Ȃ����[�U�[�̃h�L�������g�t�H���_�ɏ����o�����悤�ł��B

�@�ȗ������ꍇ�́A���[�N�u�b�N�̖��O�̊g���q�� .pdf �ɕύX�����t�@�C�����ŁA���[�U�[�̃h�L�������g�t�H���_�ɏo�͂���܂��BXPS�`����I�񂾎��́A�g���q .xps �ɂȂ�܂��B

�@���[�U�[�̃h�L�������g�t�H���_�́A���[�U�[���� taro �̏ꍇ�A�uC:\Users\taro\Documents�v�ł��B

�@�@�@�@

c. Quality

�@PDF�̎����w��B�ȗ��”\�B

�@���̒l���w��”\�B

�萔�� ���l ����
XlQualityStandard 0 �W���̕i��
XlQualityMinimum 1 �ŏ����̕i��

�@�@�@�@

d. IncludeDocProperties

�@true�܂���false���w��B�ȗ��”\�B

�@�h�L�������g�v���p�e�B���܂܂�Ă��邱�Ƃ������ꍇ��true�ɐݒ肵�A�ȗ�����Ă��邱�Ƃ������ꍇ��false�ɐݒ肵�܂��B

�@�@�@�@

e. IgnorePrintAreas

�@true�܂���false���w��B�ȗ��”\�B

�@true�ɐݒ肷��ƁA�o�͂���ꍇ�Ɉ���͈͂���������܂��Bfalse�ɐݒ肷��ƁA�o�͂���ꍇ�Ɉ���͈͂��g�p����܂��B

�@�@�@�@

f. From

�@�ȗ��”\�B

�@�o�͂��J�n����y�[�W�̃y�[�W�ԍ����w�肵�܂��B���̈������ȗ�����ƁA�擪�̃y�[�W����o�͂��J�n����܂��B

�@�@�@�@

g. To

�@�ȗ��”\�B

�@�o�͂��I������y�[�W�̔ԍ����w�肵�܂��B���̈������ȗ�����ƁA�Ō�̃y�[�W�܂ŏo�͂��܂��B

�@�@�@�@

h. OpenAfterPublish

�@true�܂���false���w��B�ȗ��”\�B

�@true�ɐݒ肷��ƁA�t�@�C�����{���\�t�g�ŕ\������܂��Bfalse�ɐݒ肷��ƁA�t�@�C���͏����o����܂����\���͂���܂���B

�@�@�@�@

i. FixedFormatExtClassPtr

�@�ȗ��”\�B

�@FixedFormatExt�N���X�ւ̃|�C���^�[�B

�� �ڎ��ɖ߂�

(3) ����͈͂��w�肵�Ĉꕔ�̂ݏo��

�@Excel�ň���͈͂��w�肷�鎞�́A���[�N�V�[�g�� PageSetup.PrintArea ��p���܂��B

�@����ɂ��A����͈͂�A1:C3�ɂ��Ă����ƁA���̕���������PDF�ɏ����o�����Ƃ��ł��܂��B

�@���̏ꍇ�AExportAsFixedFormat�� IgnorePrintAreas �Ƃ���������false�ɂ��܂��B

�@pdf01.rb���������������āAA1:C3�̕���������PDF�ɏo�͂���X�N���v�g�������܂��B�Y���ӏ��̂݌f���܂��B

�@�@�@�@

�|�|�|�| pdf02.rb ��������
  �i�O���j
  wb.save  # ���[�N�u�b�N�̕ۑ�
  ss.PageSetup.PrintArea = ss.Range("A1:C3").Address  # ����͈͐ݒ�
  ss.ExportAsFixedFormat('Type'=>XlTypePDF,
      'Filename'=>Exl::fullpath(pdf_file),
      'Quality'=>XlQualityStandard,
      'IgnorePrintAreas'=>false)
  ss.PageSetup.PrintArea = ""  # ����͈͂�����
  �i�㗪�j
�|�|�|�| pdf02.rb �����܂�

�@�@�@�@

�@���� IgnorePrintAreas �����Ɏw�肳��Ȃ��������́A�����炭true�Ƃ݂Ȃ����̂��Ǝv���܂��B�‚܂�A����͈͂��ݒ肵�Ă����Ă��A����𖳎�����PDF�������o���܂��B

�@���Ȃ݂ɁA��� pdf02.rb �ł́A���[�N�V�[�g��ExportAsFixedFormat��K�p���܂������A���[�N�u�b�N�ɓK�p���Ă��A��͂����͈͂�����PDF�ɏo�͂���܂��B

�� �ڎ��ɖ߂�


2.�@MS-Word�ɂ��PDF�t�@�C���̏o��

�@MS-Word��ExportAsFixedFormat���\�b�h�ɂ‚��ċL���܂��B

�@�@�@�@

(1) �T���v���X�N���v�g

�@�ϐ�doc��MS-Word�̃h�L�������g�I�u�W�F�N�g���������Ă���ꍇ�Adoc.ExportAsFixedFormat() ��p����ƁAPDF�t�@�C���������o�����Ƃ��ł��܂��B

�@�܂��̓T���v���X�N���v�g�������܂��Bruby�X�N���v�g�ł��B�ٍ�wrdap.rb��p���܂��B

�@�f�ރf�[�^�́A�H�열�V��́u�m�q�t�v(�Ƃ������)�̖`�������ł��B

�@�@�@�@

�|�|�|�| pdf03.rb ��������
# encoding: Windows-31J
require "wrdap"
lines = DATA.read.split(/\n/)  # �f�ރf�[�^
doc_file = "test03.doc"
File.unlink(doc_file)  if test(?e, doc_file)
pdf_file = "test03.pdf"
File.unlink(pdf_file)  if test(?e, pdf_file)
Wrdap.new(doc_file) do |doc|  # ���[�h���N����test03.doc���J��
  slc = doc.Application.Selection
  lines.each do |line|
    slc.TypeText line  # �P�s����
    slc.TypeParagraph()  # �G���^�[�L�[���������Ƃɑ���
  end
  doc.save  # ���[�h�����̕ۑ�
  doc.ExportAsFixedFormat('OutputFileName'=>Wrd::fullpath(pdf_file),
      'ExportFormat'=>WdExportFormatPDF,
      'OptimizeFor'=>WdExportOptimizeForPrint,
      'Range'=>WdExportAllDocument)
end

__END__
�m�q�t
�H�열�V��
�@���t�̓���ł��B
�@���̓s���z�̐��̖�̉��ɁA�ڂ������‚��ł���A��l�̎�҂�����܂����B
�@��҂͖���m�q�t�Ƃ����āA���͋����̑��q�ł������A���͍��Y���s���āA���̓��̕邵�ɂ�����ʁA���Ȑg���ɂȂ��Ă���̂ł��B
�|�|�|�| pdf03.rb �����܂�

�@�@�@�@

�@ExportAsFixedFormat�ɂ킽�������́A�ŏ��̂Q�‚����ł������Ǝv���܂����A�Q�l�܂ŋL���Ă݂܂����B

�� �ڎ��ɖ߂�

(2) MS-Word��ExportAsFixedFormat���\�b�h�̈���

�@Word��ExportAsFixedFormat�ɂ���������ɂ‚��āA�v�_���L���܂��B

�@�@�@�@

a. OutputFileName

�@�o�̓t�@�C�����B

�@���ꂪ�t���p�X���łȂ��ꍇ�A�J�����g�f�B���N�g���ł͂Ȃ����[�U�[�̃h�L�������g�t�H���_�ɏ����o�����悤�ł��B

�@�@�@�@

b. ExportFormat

�@�ۑ��`�����w��B

�@���̒l�̂ǂꂩ���w��B

�萔�� ���l ����
WdExportFormatPDF 17 PDF�`���ŕۑ�
WdExportFormatXPS 18 XPS�`���ŕۑ�

�@�@�@�@

c. OpenAfterExport

�@true�܂���false���w��B�ȗ��”\�B

�@�o�͂����t�@�C�����{���\�t�g�Ŏ����I�ɊJ���ꍇ��true�B����ȊO�̏ꍇ��false�B

�@�@�@�@

d. OptimizeFor

�@����p�ɍœK�����邩�A��ʗp�ɍœK�����邩�̂����ꂩ���w��B�ȗ��”\�B

�@�ȗ����́u����p�v(���l0)�B

�@���̒l���w��”\�B

�萔�� ���l ����
WdExportOptimizeForPrint 0 ����p�B���������t�@�C���T�C�Y����B
WdExportOptimizeForOnScreen 1 ��ʗp�B���͗����邪�t�@�C���T�C�Y�����B

�@�@�@�@

e. Range

�@PDF�Ƃ��ď����o���͈́B�ȗ��”\�B

�@PDF�Ƃ��ď����o���͈͂��A�����S�́A���݂̑I���ӏ��A���݂̃y�[�W�A�܂��̓e�L�X�g�͈̔͂̂�����ł��邩���w��B

�@�ȗ����͕����S��(���l0)�B

�@���̒l���w��”\�B

�萔�� ���l ����
WdExportAllDocument 0 �����S��
WdExportSelection 1 ���݂̑I���ӏ�
WdExportCurrentPage 2 ���݂̃y�[�W
WdExportFromTo 3 �e�L�X�g�͈̔́B�n�_�ƏI�_��ʓr�w��B

�@�@�@�@

f. From

�@�J�n�y�[�W�ԍ��B�ȗ��”\�B

�@����Range��WdExportFromTo(�e�L�X�g�͈̔�)�ɐݒ肳��Ă���ꍇ�A�J�n�y�[�W�ԍ����w��B

�@�ȗ����͐��l1�B

�@�@�@�@

g. To

�@�I���y�[�W�ԍ��B�ȗ��”\�B

�@����Range��WdExportFromTo(�e�L�X�g�͈̔�)�ɐݒ肳��Ă���ꍇ�A�I���y�[�W�ԍ����w��B

�@�ȗ����͐��l1�B

�@�@�@�@

h. Item

�@�}�[�N�A�b�v���܂߂邩�ۂ��B�ȗ��”\�B

�@PDF���o�͂���ہA�e�L�X�g�݂̂��܂߂邩�A�e�L�X�g���}�[�N�A�b�v�t���Ŋ܂߂邩���w��B

�@�ȗ����̓}�[�N�A�b�v���܂߂Ȃ�(���l0)�B

�@���̒l���w��”\�B

�萔�� ���l ����
WdExportDocumentContent 0 �}�[�N�A�b�v�Ȃ�
WdExportDocumentWithMarkup 7 �}�[�N�A�b�v�t��

�@�@�@�@

i. IncludeDocProps

�@�����̃v���p�e�B���܂߂邩�ۂ��B�ȗ��”\�B

�@PDF�t�@�C���ɕ����̃v���p�e�B���܂߂�ꍇ��true�B����ȊO�̏ꍇ��false�B

�@�@�@�@

j. KeepIRM

�@true�܂���false�B�ȗ��”\�B

�@�\�[�X������IRM(Information Rights Management)�ɂ���ĕی삳��Ă���ꍇ�AIRM�A�N�Z�X���‚� XPS�����ɃR�s�[����ꍇ��true�B����ȊO�̏ꍇ��false�B

�@�ȗ�����true�B

�@�@�@�@

k. CreateBookmarks

�@�u�b�N�}�[�N�̊܂ߕ��B�ȗ��”\�B

�@�u�b�N�}�[�N��PDF�t�@�C���ɏ����o�����ǂ����A����яo�͂���ꍇ�̃u�b�N�}�[�N�̌^���w��B

�@�ȗ����̓u�b�N�}�[�N���o�͂��Ȃ�(���l0)�B

�@���̒l���w��”\�B

�@�@�@�@

�@�@�@�@

l. DocStructureTags

�@true�܂���false�B�ȗ��”\�B

�@�X�N���[�����[�_�[�ɂƂ��ėL�p�Ȓlj��f�[�^(�R���e���c�̃t���[��_���\���Ȃ�)���܂߂�ꍇ��true�B����ȊO�̏ꍇ��false�B

�@�ȗ�����true�B

�@�@�@�@

m. BitmapMissingFonts

�@�r�b�g�}�b�v���܂߂邩�ۂ��B�ȗ��”\�B

�@�e�L�X�g�̃r�b�g�}�b�v���܂߂�ꍇ��true�B�e�L�X�g�t�H���g���Q�Ƃ���ꍇ��false�B

�@�t�H���g�̃��C�Z���X��PDF�t�@�C���ւ̃t�H���g�̖��ߍ��݂����‚��Ȃ��ꍇ�́A���̈�����true�ɐݒ肵�܂��B

�@���̈�����false�ɐݒ肵���ꍇ�A�w�肳�ꂽ�t�H���g���\����̃R���s���[�^�[�Ŏg�p�ł��Ȃ����́A�K�؂ȃt�H���g�ɒu���������܂��B

�@�ȗ�����true�B

�@�@�@�@

n. UseISO19005_1

�@true�܂���false�B�ȗ��”\�B

�@PDF�̎g�p��ISO19005-1�Ƃ��ĕW��������Ă���PDF�̃T�u�Z�b�g�Ɍ��肷��ꍇ��true�B����ȊO�̏ꍇ��false�B

�@���̈�����true�ɐݒ肷��ƁA���ʃt�@�C���̓Ɨ����͍��܂�܂����A�`���̐����������ŁA�T�C�Y���傫���Ȃ�����A�r�W���A�� �A�C�e���̕\�������������肷��ꍇ������܂��B

�@�ȗ�����false�B

�@�@�@�@

o. FixedFormatExtClassPtr

�@������ʂ̌Œ�`���ŕۑ��ł���悤�ɂ���IMsoDocExporter �C���^�[�t�F�C�X�̎����ւ̃|�C���^�[�B

�� �ڎ��ɖ߂�

(3) �͈͎w�肵�ĕ����̈ꕔ���o��

�@�����̈ꕔ�݂̂��o�͂���ɂ́A�o�͂������͈͂�Range�Ƃ��ė\�ߐݒ肵����ŁAExportAsFixedFormat�̈���Range��WdExportSelection(���݂̑I���ӏ��F���l1)�ɂ��܂��B

�@���̃T���v�������Ɍf���܂��B��P�`��R�p���O���t�݂̂�PDF�ɏo�͂��܂��Bpdf03.rb�������������������̂ł��B�Y���ӏ��̂ݎ����܂��B

�@�@�@�@

�|�|�|�| pdf04.rb ��������
  �i�O���j
  doc.save  # ���[�h�����̕ۑ�
  rs = doc.Paragraphs(1).Range.Start
  re = doc.Paragraphs(3).Range.End
  doc.Range('Start'=>rs, 'End'=>re).Select
  doc.ExportAsFixedFormat('OutputFileName'=>Wrd::fullpath(pdf_file),
      'ExportFormat'=>WdExportFormatPDF,
      'OptimizeFor'=>WdExportOptimizeForPrint,
      'Range'=>WdExportSelection)
  �i�㗪�j
�|�|�|�| pdf04.rb �����܂�

�� �ڎ��ɖ߂�


3.�@PowerPoint�ɂ��PDF�t�@�C���̏o��

�@PowerPoint��ExportAsFixedFormat���\�b�h�ɂ‚��ċL���܂��B

�@�@�@�@

(1) �T���v���X�N���v�g

�@�ϐ�presen��PowerPoint�̃v���[���e�[�V�����I�u�W�F�N�g���������Ă���ꍇ�Apresen.ExportAsFixedFormat() ��p����ƁAPDF�t�@�C���������o�����Ƃ��ł��܂��B

�@�܂��̓T���v���X�N���v�g�������܂��Bruby�X�N���v�g�ł��B�ٍ�pptap.rb��p���܂��B

�@�l���̑����̓s���{���S�‚ɂ‚��āA���̐l���A�ʐρA�l�����x��\�Ŏ����܂��B

�@�@�@�@

�|�|�|�| pdf05.rb ��������
# encoding: Windows-31J
require "pptap"
data_ary = eval(DATA.read)  # �f�ރf�[�^�̎捞��
ppt_file = "test05.ppt"
File.unlink(ppt_file)  if test(?e, ppt_file)
pdf_file = "test05.pdf"
File.unlink(pdf_file)  if test(?e, pdf_file)
Pptap.new(ppt_file) do |presen|  # PowerPoint���N����test05.ppt���J��
  new_slide = presen.Slides.Add('Index'=>presen.Slides.Count+1,
      'Layout'=>PpLayoutTitleOnly)
  new_slide.Shapes.Title.TextFrame.TextRange.Text = "H24�N�l����"
  shp = new_slide.Shapes.AddTable('NumRows'=>data_ary.size,
      'NumColumns'=>data_ary[0].size)
  for i in 1..data_ary.size
    row = data_ary[i-1]
    for j in 1..row.size
      shp.Table.Cell(i,j).Shape.TextFrame.TextRange.Text = row[j-1]
    end
  end
  presen.save  # test05.ppt��ۑ�
  presen.PrintOptions.Ranges.ClearAll  # ����͈͂��N���A
  prng = presen.PrintOptions.Ranges.Add(1,1)  # ����͈͂̐ݒ�
  presen.ExportAsFixedFormat('Path'=>Pptm::fullpath(pdf_file),
      'FixedFormatType'=>PpFixedFormatTypePDF,
      'PrintRange'=>prng)
end

__END__
[["�s���{��", "�l��", "�ʐ�", "�l�����x"],
    ["����", 13216221, 2188.67, 6038.47],
    ["�_�ސ�", 9072133, 2415.86, 3755.24],
    ["���", 8863324, 1901.42, 4661.42],
    ["���m", 7425952, 5165.14, 1437.71],
    ["�S��", 127532028, 372923.77, 341.98]]
�|�|�|�| pdf0�T.rb �����܂�

�@�@�@�@

�@ExportAsFixedFormat�̈���PrintRange�ɂ‚��āA�����⑫���܂��B

�@���̈����́AWeb�̂��낢��ȉ���ł͏ȗ��”\�ƂȂ��Ă���悤�ł��B�������A�ȗ�����ƃG���[���������Ă��܂��܂��B

�@�����ŁA����͈͂�ݒ肵�A�����ϐ�prng�ɑ�����܂��B���̏�ŁA����PrintRange�ɂ���prng���w�肵�܂��B

�@ExportAsFixedFormat�́APrintRange�ɉ����w�肳��Ă��Ă��A�S���̃X���C�h���o�͂���̂��f�t�H���g�ɂȂ��Ă��܂��B

�@�Ȃ̂ŁA�����ł킴�킴����͈͂�ݒ肵�Ă��Ӗ��͂���܂��񂪁A�������Ȃ��ƃG���[�ɂȂ�̂ŁA��ނȂ��������܂��B

�@����͈͂�����PDF�ɏo�͂�����@�ɂ‚��Ă͌�q�B

�� �ڎ��ɖ߂�

(2) PowerPoint��ExportAsFixedFormat���\�b�h�̈���

�@PowerPoint��ExportAsFixedFormat�ɂ���������ɂ‚��āA�v�_���L���܂��B

�@�@�@�@

a. Path

�@�o�͐�̃p�X���B�K�{�B

�@test.ppt�̂悤�ȃt�@�C�����������ƃG���[�ɂȂ�悤�ł��B�uD:\work\test.pdf�v�̂悤�Ƀf�B���N�g�������܂߂����̂ɂ��܂��B

�@�@�@�@

b. FixedFormatType

�@�o�͌`���B�K�{�B

�@���̒l���w��”\�B

�萔�� ���l ����
PpFixedFormatTypeXPS 1 XPS�`��
PpFixedFormatTypePDF 2 PDF�`��

�@�@�@�@

c. Intent

�@����p����ʗp���̎w��B�ȗ��”\�B

�@����p�ɍœK�����邩�A��ʗp�ɍœK�����邩�̂����ꂩ���w��B

�@�ȗ����͉�ʗp(���l0)�B

�@���̒l���w��”\�B

�萔�� ���l ����
PpFixedFormatIntentScreen 1 ��ʗp
PpFixedFormatIntentPrint 2 ����p

�@�@�@�@

d. FrameSlides

�@�t���[���ʼn���邩�ǂ����̎w��B�ȗ��”\�B

�@�o�͂���X���C�h���t���[���ʼn���邩�ǂ������w�肵�܂��B

�@�ȗ����̓t���[���ʼn����Ȃ�(���l0)�B

�@���̒l���w��”\�B

�萔�� ���l ����
MsoFalse 0 �X���C�h���t���[���ʼn����Ȃ�
MsoTrue -1 �X���C�h���t���[���ʼn����

�@�@�@�@

e. HandoutOrder

�@����̏������w��B�ȗ��”\�B

�@������鏇�����w�肵�܂��B

�@�ȗ����͐��������D��̏���(���l1)�B

�@���̒l���w��”\�B

�@�@�@�@

�@�@�@�@

f. OutputType

�@�o�͂̎�ނ��w��B�ȗ��”\�B

�@�ȗ����͑S���̃X���C�h�����(���l1)�B

�@���̒l���w��”\�B

�萔�� ���l ����
PpPrintOutputSlides 1 ���ׂẴX���C�h�����
PpPrintOutputTwoSlideHandouts 2 1�y�[�W������2���̃X���C�h�����
PpPrintOutputThreeSlideHandouts 3 1�y�[�W������3���̃X���C�h�����
PpPrintOutputSixSlideHandouts 4 �y�[�W����6�‚̃X���C�h�����
PpPrintOutputNotesPages 5 �m�[�g�����
PpPrintOutputOutline 6 �A�E�g���C���\�������
PpPrintOutputBuildSlides 7 �H�H�H
PpPrintOutputFourSlideHandouts 8 �y�[�W������4�‚̃X���C�h�����
PpPrintOutputNineSlideHandouts 9 1�y�[�W������9���̃X���C�h�����
PpPrintOutputOneSlideHandouts 10 1�y�[�W������1���̃X���C�h�����

�@�@�@�@

g. PrintHiddenSlides

�@��\���̃X���C�h��������邩�ǂ����̎w��B�ȗ��”\�B

�@�ȗ����͔�\���̃X���C�h��������Ȃ�(���l0)�B

�@���̒l���w��”\�Bruby�ł͉��̒萔�����g���Ȃ��̂Œ��ӁB

�萔�� ���l ����
MsoFalse 0 ��\���̃X���C�h��������Ȃ�
MsoTrue -1 ��\���̃X���C�h���������

�@�@�@�@

h. PrintRange

�@�o�͂������͈̔�(�X���C�h�̑I��)�B

�@ActivePresentation.PrintOptions.Ranges�I�u�W�F�N�g���w��B

�@�@�@�@

i. RangeType

�@����͈͂̈��������w��B�ȗ��”\�B

�@�ȗ����͑S���̃X���C�h���o��(���l1)�B�‚܂����͈͂̒l�ɍ��E����Ȃ��B

�@���̒l���w��”\�B

�@�@�@�@

�萔�� ���l ����
PpPrintAll 1 ���ׂẴX���C�h���o��
PpPrintSelection 2 �I�����ꂽ�X���C�h���o��
PpPrintCurrent 3 ���݂̃X���C�h�݂̂��o��
PpPrintSlideRange 4 �w�肳�ꂽ����͈͂��o��
PpPrintNamedSlideShow 5 SlideShowName�Ŏw�肳�ꂽ�X���C�h�V���[���o��

�@�@�@�@

j. SlideShowName

�@������B�ȗ��”\�B

�@�X���C�h�V���[�̖��O���w�肵�܂��B

�@�@�@�@

k. IncludeDocProperties

�@true�܂���false���w��B�ȗ��”\�B

�@�h�L�������g�̃v���p�e�B���o�͂��邩�ǂ������w�肵�܂��B

�@�ȗ�����false�B

�@�@�@�@

l. KeepIRMSettings

�@true�܂���false���w��B�ȗ��”\�B

�@IRM�ݒ���o�͂��邩�ǂ������w�肵�܂��B

�@�ȗ�����true�B

�@�@�@�@

m. DocStructureTags

�@true�܂���false���w��B�ȗ��”\�B

�@�}�ʂւ̃A�N�Z�X�����P���邽�߁A�}�ʍ\���^�O���܂߂邩�ǂ������w�肵�܂��B

�@�ȗ�����true�B

�@�@�@�@

n. BitmapMissingFonts

�@true�܂���false���w��B�ȗ��”\�B

�@�e�L�X�g�̃r�b�g�}�b�v���܂߂邩�ǂ������w�肵�܂��B

�@�ȗ�����true�B

�@�t�H���g�̃��C�Z���X�ŁA�t�H���g�� PDF�t�@�C���ɖ��ߍ��ނ��Ƃ����‚���Ă��Ȃ��ꍇ�A���̈�����true�ɐݒ肵�܂��B

�@���̈�����false�ɐݒ肷��ƁA�t�H���g���Q�Ƃ���܂��B�{���҂̃R���s���[�^�[�ō쐬���ꂽ�t�H���g���g�p�ł��Ȃ��ꍇ�A�K�؂ȃt�H���g�ő�p����܂��B

�@�@�@�@

o. UseISO19005_1

�@true�܂���false���w��B�ȗ��”\�B

�@���������}�ʂ� ISO 19005-1(PDF/A) �ɏ������Ă��邩�ǂ����������܂��B

�@�ȗ�����false�B

�@�@�@�@

p. ExternalExporter

�@Office�A�h�C���ւ̃|�C���^�B�ȗ��”\�B

�@COM��IMsoDocExporter�C���^�[�t�F�C�X���������R�[�h�̑�֎����̌Ăяo�����”\�ɂ���AOffice�A�h�C���ւ̃|�C���^�ł��B

�@�ȗ�����Null�|�C���^�B

�� �ڎ��ɖ߂�

(3) ����͈͂��w�肵�Ĉꕔ�̂ݏo��

�@PowerPoint�ň���͈͂��w�肷��ɂ́AActivePresentation.PrintOptions.Ranges�I�u�W�F�N�g��p���܂��B

�@�O�f��pdf05.rb�ɂ��̗Ⴊ�o�Ă��܂��B�ϐ�presen��ActivePresentation���������Ă���ꍇ�A���̂悤�ɂ��܂��B

�@�@�@�@

presen.PrintOptions.Ranges.ClearAll  # ����͈͂��N���A
prng = presen.PrintOptions.Ranges.Add(1,1)

�@�@�@�@

�@��L�́uAdd(1,1)�v�́A�P�Ԗڂ̃X���C�h�݂̂�I������Ƃ����Ӗ��ɂȂ�܂��B

�@�uAdd(2,5)�v�Ȃ�A��Q�`��T�̃X���C�h��I�����܂��B

�@�uAdd(1, presen.Slides.Count)�v���ƁA�S���̃X���C�h��I�����邱�ƂɂȂ�܂��B

�@�@�@�@

�@����AExportAsFixedFormat�̈���RangeType���A�f�t�H���g��PpPrintAll(�S�X���C�h��I���F���l1)�̂܂܂��ƁA���������͈͂�ݒ肵�Ă����Ă��A�S�X���C�h���o�͂���Ă��܂��܂��B

�@�����ŁA����RangeType��PpPrintSlideRange(�w�肳�ꂽ����͈͂��o�́F���l4)�ɂ��܂��B��������΁A�ݒ肵������͈͂�����PDF�ɏo�͂���܂��B

�@�@�@�@

�@���k�t�@�C���Ɋ܂܂�Ă���pdf06.rb�́A����͈͂�����PDF�ɏo�͂���T���v���ł��B

�@�Q�‚̃X���C�h����Ȃ� test06.ppt ���쐬���A���̒��̑�Q�̃X���C�h������PDF�ɏo�͂��܂��B

�@��P�̃X���C�h��pdf05.rb�Ɠ����ł��B��Q�̃X���C�h�ɂ�Textbox��݂��Ă��܂��B�A�C�f�A���z�@�́u�I�Y�{�[���̃`�F�b�N���X�g�v���L���Ă��܂��B

�@�S���������ƒ����Ȃ�̂ŁAPowerPoint���N�����Ă���I������Ƃ���܂ł��f���܂��B�f�ރf�[�^�̉ӏ��͏ȗ��B

�@�@�@�@

�|�|�|�| pdf06.rb ��������
�i�O���j
Pptap.new(ppt_file) do |presen|  # PowerPoint���N����test06.ppt���J��
  slide_width  = presen.PageSetup.SlideWidth
  slide_height = presen.PageSetup.SlideHeight
      # ��P�̃X���C�h���쐬
  new_slide = presen.Slides.Add('Index'=>presen.Slides.Count+1,
      'Layout'=>PpLayoutTitleOnly)
  new_slide.Shapes.Title.TextFrame.TextRange.Text = "H24�N�l����"
  shp = new_slide.Shapes.AddTable('NumRows'=>data_ary.size,
      'NumColumns'=>data_ary[0].size)
  for i in 1..data_ary.size
    row = data_ary[i-1]
    for j in 1..row.size
      shp.Table.Cell(i,j).Shape.TextFrame.TextRange.Text = row[j-1]
    end
  end
      # ��Q�̃X���C�h���쐬
  new_slide = presen.Slides.Add('Index'=>presen.Slides.Count+1,
      'Layout'=>PpLayoutTitleOnly)
  new_slide.Shapes.Title.TextFrame.TextRange.Text = "�A�C�f�A���z�@"
  shp = new_slide.Shapes.AddTextbox('Orientation'=>1, 'Left'=>60,
      'Top'=>60, 'Width'=>slide_width-60, 'Height'=>slide_height-60)
  # �� Orientation  1:������, 2:�c����(�������), 3:�c����(�ォ�牺)
  shp.textFrame.textRange.text = data_str
  presen.save  # test06.ppt��ۑ�
      # ����͈͂�ݒ肵��PDF�o��
  presen.PrintOptions.Ranges.ClearAll  # ����͈͂��N���A
  prng = presen.PrintOptions.Ranges.Add(2,2)  # ����͈͂̐ݒ�
  presen.ExportAsFixedFormat('Path'=>Pptm::fullpath(pdf_file),
      'FixedFormatType'=>PpFixedFormatTypePDF,
      'PrintRange'=>prng, 'RangeType'=>PpPrintSlideRange)
end
�i�㗪�j
�|�|�|�| pdf06.rb �����܂�

�� �ڎ��ɖ߂�


4.�@pdf_out���\�b�h�ɂ��PDF�o��

�@����܂ŏ����Ă���ExportAsFixedFormat���\�b�h�ɂ͑����̈����������čׂ��Ȑݒ肪�ł��܂����A�g���̂������ʓ|�ł��B

�@�����ŁA�ȒP��PDF�o�͂��s����悤�Apdf_out�Ƃ������\�b�h��݂��܂����B�ٍ� exlap.rb, wrdap.rb, pptap.rb���ꂼ���pdf_out���`���Ă��܂��B

�@pdf_out�ɂ�pdf�Ƃ����R�����̕ʖ�������̂ŁApdf�Ƃ��������Ă����v�ł��B

�@�@�@�@

(1) exlap.rb�Ȃǂ̃C���X�g�[��

�@exlap.rb�Ȃǂ̂R�‚�ruby�p���C�u�����́A���k�t�@�C���ɓ������Ă���܂��Blib�Ƃ����f�B���N�g���̉��ɂ���܂��B

�@�����f�B���N�g���ɂ��� setup.rb �����s����ƁA�R�‚��܂Ƃ߂ăC���X�g�[���ł��܂��B

�@unset.rb�����s����΁A�܂Ƃ߂ăA���C���X�g�[���ł��܂��B

�@�@�@�@

  ruby.exe setup.rb [enter]

�@�@�@�@

�@��̂悤�Ɏ��s����΃C���X�g�[���ł��܂��B

�� �ڎ��ɖ߂�

(2) pdf_out���\�b�h�̓���

�@pdf_out���\�b�h�́A���̓�����ExportAsFixedFormat���Ăяo���Ă��܂����A���̂悤�ȓ���������܂��B

�@�@�@�@

�@�@�@�@

�@�Ⴆ�΁Atest.xls��PDF�Ƃ��ďo�͂��������́A���̂Q�s�̃X�N���v�g�ő���܂��B

�@�@�@�@

require "exlap"
Exlap.new("test.xls") {|wb|  wb.pdf_out}

�@�@�@�@

�@��̃X�N���v�g�����s����ƁA�J�����g�f�B���N�g���� test.pdf �������o����܂��B

�@�����J�����g�f�B���N�g���ɂ��� *.xls �����ׂ�PDF�Ƃ��ďo�͂�������΁A���̂悤�ɂ��܂��B

�@�@�@�@

require "exlap"
Exlap.new(*Dir.glob("*.xls")) {|wb|  wb.pdf_out; wb.close}

�@�@�@�@

�@��̂Q�s�̃X�N���v�g���ƁA�J�����g�f�B���N�g����Excel�t�@�C���������Ȃ��ꍇ�ł����Ă��AExcel���N�����Ă��܂��܂��B

�@����������_�͂���܂����A�����ȒP�ȃX�N���v�g�ōς݂܂��B

�� �ڎ��ɖ߂�

(3) pdf_out���\�b�h�ň������w�肷���

�@pdf_out���\�b�h�ň������w�肷���������‚��グ�܂��B

�@wb�ɂ�Excel�̃��[�N�u�b�N�Adoc�ɂ�Word�̃h�L�������g�Apresen�ɂ�PowerPoint�̃v���[���e�[�V���������ꂼ��������Ă�����̂Ƃ��܂��B

�@�@�@�@

�@�@�@�@

�@pdf_out���\�b�h��Hash�ň������킽�����́AExcel, Word, PowerPoint���ꂼ��ňقȂ�̂Œ��ӂ��K�v�ł��B�e�X��ExportAsFixedFormat�̈������Q�l�ɂ��ĉ������B

�@Hash�̈����̒��ŁA�o�̓t�@�C����(PDF�t�@�C���̖��O)���w�肵�����́A���ꂪ�t���p�X���ɕϊ�����āA���̏��ExportAsFixedFormat�Ɉ����n����܂��B

�� �ڎ��ɖ߂�

(4) �T���v���X�N���v�g

�@�J�����g�f�B���N�g���ɂ���Excel, Word, PowerPoint�̃t�@�C����ǂݍ���ŁA���ꂼ��PDF�t�@�C���Ƃ��ď����o���T���v���������܂��B

�@Excel�̏ꍇ�ł����ƁA*.xls �����łȂ� *.xlsx �Ȃǂ��Ώۂɂ��܂��B

�@�J�����g�f�B���N�g���� test.xls, test.xlsx �̗���������ꍇ�A�ǂ�����o�̓t�@�C������ test.pdf �ɂȂ��Ă��܂��ƍ���̂ŁAtest.xls.pdf, test.xlsx.pdf �̂悤�ȏo�̓t�@�C�����ɂ��܂��B

�@�@�@�@

�|�|�|�| pdf07.rb ��������
# encoding: Windows-31J
require "exlap"
require "wrdap"
require "pptap"
xl = wrd = ppt = nil
file_ptn = "*.xls\0*.xls?\0*.doc\0*.doc?\0*.ppt\0*.ppt?"
Dir.glob(file_ptn) do |filename|
  extname = File.extname(filename).downcase  # �g���q�̎擾
  pdf_file = filename + ".pdf"  # �o�̓t�@�C����
  case extname  # �g���q���ƂɈقȂ鏈��
  when /\.xls.?/
    xl = Exlap.new  unless xl  # �܂�Excel���N�����ĂȂ���΋N��
    xl.opens(filename) {|wb| wb.pdf_out(pdf_file)}
  when /\.doc.?/
    wrd = Wrdap.new  unless wrd  # �܂�Word���N�����ĂȂ���΋N��
    wrd.opens(filename) {|doc| doc.pdf_out(pdf_file)}
  when /\.ppt.?/
    ppt = Pptap.new  unless ppt  # �܂�PowerPoint���N�����ĂȂ���΋N��
    ppt.opens(filename) {|presen| presen.pdf_out(pdf_file)}
  end
end
xl.quit  if xl
wrd.quit  if wrd
ppt.quit  if ppt
�|�|�|�| pdf07.rb �����܂�

�� �ڎ��ɖ߂�


5.�@���̑�

�@ruby���C���X�g�[������Ă��Ȃ��‹��� exlap.rb, wrdap.rb, pptap.rb �𗘗p�ł���悤�ɂ��邽�߁Aexl18.exe, exl21.exe �Ƃ����R�}���h�����܂����B

�@����܂ŏЉ���T���v���X�N���v�g�́A�����������痼�R�}���h exl18, exl21 �̉��œ����܂��B

�@���R�}���h�̏ڍׂɂ‚��ẮA���̃T�C�g���Q�Ƃ��ĉ������B

exl18.exe�ɂ‚���

�@�@�@�@

�`�@�ȏ�@�`