/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: hinfo.h,v $ * $Revision: 1.4 $ * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ /* $Id: hinfo.h,v 1.4 2008-04-10 12:05:21 rt Exp $ */ #ifndef _HWPINFO_H_ #define _HWPINFO_H_ #include "hwplib.h" #define CHAIN_MAX_PATH 40 #define ANNOTATION_LEN 24 class HWPFile; class CTextOut; class CHTMLOut; /** * Information of page (phisical) */ typedef struct { unsigned char paper_kind; unsigned char paper_direction; hunit paper_height; hunit paper_width; hunit top_margin; hunit bottom_margin; hunit left_margin; hunit right_margin; hunit header_length; hunit footer_length; hunit gutter_length; } PaperInfo; /* ÆäÀÌÁö ¹è°æ»ö, ¹è°æ±×¸² Á¤º¸ */ typedef struct { char type; // 0- background color, 1 - external image, 2- embeded image char reserved1[8]; int luminance; /* ¹à±â ( -100 ~ 100 ) */ int contrast; /* ¸í¾Ï ( -100 ~ 100 ) */ char effect; /* 0-¿ø·¡±×¸², 1-±×·¹À̽ºÄÉÀÏ, 2-Èæ¹é */ char reserved2[8]; char filename[260 + 1]; // filename unsigned char color[3]; //0 - red, 1 - green, 2 - blue unsigned short flag; /* 0 - ¹ÙµÏÆǽÄ, 1 - °¡¿îµ¥·Î, 2 - ÂÊÅ©±â, 3 - ¿ëÁöÅ©±â */ int range; /* 0-Àüü, 1-ùÆäÀÌÁö, 3-¦¼öÂÊ, 4-Ȧ¼öÂÊ */ char reserved3[27]; int size; char *data; // image data bool isset; } PaperBackInfo; /* ¿¬°áÀμâ Á¤º¸ */ /** * Information of printing for chained page */ typedef struct { unsigned char chain_page_no; unsigned char chain_footnote_no; unsigned char chain_filename[CHAIN_MAX_PATH]; } DocChainInfo; /* ¹®¼­ ¿ä¾à */ /** * Summary of document */ struct HWPSummary { unsigned short title[56]; unsigned short subject[56]; unsigned short author[56]; unsigned short date[56]; unsigned short keyword[2][56]; unsigned short etc[3][56]; bool Read(HWPFile &); }; /** HWPInfo class´Â HWPFile¿¡ ´ëÇÑ Á¤º¸¸¦ ´ã°í Àִ Ŭ·¡½ºÀÌ´Ù. Á¾À̳ª ¿©¹é µîÀÇ ·¹À̾ƿô(layout) Á¤º¸´Â Âʸűâ±â¿¡¼­ »ç¿ëÇϸç, ±âŸ ³»ºÎ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. \\ HWPInfo Ŭ·¡½º´Â HWPFileÀÇ #GetHWPInfo()# ÇÔ¼ö¸¦ ÅëÇØ ¾òÀ» ¼ö ÀÖ´Ù. @memo Hwp ¹®¼­ Á¤º¸ */ /** * Contains the basic information of the hwp document: * margin, layout, paper and internal data. */ class DLLEXPORT HWPInfo { public: /** * The column index of a document that is saved at last */ short cur_col; /** * The row index of a document that is saved at last */ short cur_row; /** * Paper Information */ PaperInfo paper; PaperBackInfo back_info; /** * Sets the attribute of read-only or read/write. */ short readonly; unsigned char reserved1[4]; /** * Information about document chain */ DocChainInfo chain_info; unsigned char annotation[ANNOTATION_LEN]; short encrypted; // unsigned char reserved2[6]; short beginpagenum; /* ½ÃÀÛÆäÀÌÁö ¹øÈ£ */ /** * Information about footnote */ short beginfnnum; /* °¢ÁÖ½ÃÀÛ¹øÈ£ */ short countfn; /* °¢ÁÖ °¹¼ö */ hunit splinetext, splinefn; hunit spfnfn; unsigned char fnchar; unsigned char fnlinetype; // layout info /** * Information about page layout */ hunit bordermargin[4]; short borderline; unsigned char empty_line_hide; unsigned char table_move; unsigned char compressed; unsigned char reserved3; short info_block_len; /* ¿©±â±îÁö°¡ 128 ¹ÙÀÌÆ®ÀÌ´Ù */ /** * Summary of document */ HWPSummary summary; unsigned char *info_block; HWPInfo(void); ~HWPInfo(void); bool Read(HWPFile &hwpf); bool Write(CTextOut &txtf); bool Write(CHTMLOut &html); /* ¿ëÁö ¹æÇâÀ» °í·ÁÇÑ Á¾ÀÌÀÇ ³ÐÀ̸¦ °è»êÇÑ´Ù. */ /** * Returns the width of paper regarding page orientation */ hunit PageWid(void); /* ¿ëÁö ¹æÇâÀ» °í·ÁÇÑ Á¾ÀÌÀÇ ±æÀ̸¦ °è»êÇÑ´Ù. */ /** * Returns the length of paper regarding page orientation */ hunit PageLen(void); /** * Returns the edit-enable width of paper */ hunit PageEditWid(void); /** * Returns the edit-enable length of paper */ hunit PageEditLen(void); }; /* ±ÛÀÚ ¸ð¾ç ±¸Á¶Ã¼ */ /** * @short Style of character */ struct CharShape { /** * Index of character style */ int index; /* ½ºÅ¸ÀÏÀÇ À妽º¸¦ ÀúÀå. */ /** * Font size */ hunit size; unsigned char font[NLanguage]; unsigned char ratio[NLanguage]; signed char space[NLanguage]; /* ÀÚ°£ */ unsigned char color[2]; unsigned char shade; unsigned char attr; unsigned char reserved[4]; bool Read(HWPFile &); }; /* ÅÇ ¼³Á¤¿¡ ´ëÇÑ ±¸Á¶Ã¼ */ #define MAXTABS 40 /** * @short Tab properties */ typedef struct { unsigned char type; unsigned char dot_continue; hunit position; } TabSet; /** * @short Column properties */ typedef struct { unsigned char ncols; unsigned char separator; hunit spacing; hunit columnlen, columnlen0; } ColumnDef; /** * @short Style of paragraph */ struct ParaShape { /** * Index of paragraph style */ int index; /* ½ºÅ¸ÀÏÀÇ À妽º¸¦ ÀúÀå */ hunit left_margin; hunit right_margin; hunit indent; hunit lspacing; hunit pspacing_prev; hunit pspacing_next; unsigned char condense; unsigned char arrange_type; TabSet tabs[MAXTABS]; ColumnDef coldef; unsigned char shade; unsigned char outline; unsigned char outline_continue; unsigned char reserved[2]; CharShape *cshape; unsigned char pagebreak; bool Read(HWPFile &); // virtual ~ParaShape(); }; #endif /* _HWPINFO_H_ */