パスワード付きPDFの保存

スプレッドシートをPDFファイルとして保存する際に、PDFのセキュリティオプションを指定できます。

このサンプルでは、コマンドバーのPDFボタン押下により表示されるダイアログで、セキュリティオプションの指定ができます。
 ID氏名カナ生年月日性別血液型部署入社日メールアドレス
11001亀甲 滋万キコウ シゲマ1950/02/04A人事部1972/04/01sigema_kikou@abc.co.jp
21002寒田 希世カンダ キヨ1959/06/28B人事部1981/04/01kiyo_kanda@bbb.or.jp
31003小和瀬 澄オワセ キヨ1969/03/06A人事部1991/04/01kiyo_owase@aaa.co.jp
41004宇夫 早余子ウブ サヨコ1976/07/28O人事部1998/04/01sayoko_ubu@bbb.or.jp
51005宇田津 聖智ウダツ キヨトモ1965/09/04A営業部1987/04/01kiyotomo_udatu@abc.co.jp
61006茨城 昭児イバラキ ショウジ1963/04/28O営業部1985/04/01shouzi_ibaraki@xyz.ne.jp
71007石ヶ休 椎茄イシガキュウ シイナ1953/02/21O営業部1975/04/01siina_isigagyuu@abc.co.jp
81008赤司 恵治郎アカツカサ ケイジロウ1968/08/02O経理部1990/04/01keizirou_akatukasa@abc.co.jp
91009小橋 仰一オハシ ギョウイチ1972/03/02B経理部1994/04/01gyouiti_ohasi@abc.co.jp
101010一重 公大イチジュウ コウダイ1964/04/19B経理部1986/04/01koudai_itizyuu@xyz.ne.jp
    

ソースコード

別ウィンドウで表示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class importexport_pdfpassword : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            return;
        }

        // SPREADの設定
        InitSpread(FpSpread1);

        // シートの設定
        InitSpreadStyles(FpSpread1.Sheets[0]);

    }

    private void InitSpread(FarPoint.Web.Spread.FpSpread spread)
    {
        spread.CssClass = "spreadStyle";
        spread.UseClipboard = false;

        // データ連結
        System.Data.DataSet ds = new System.Data.DataSet();
        ds.ReadXml(MapPath("../App_Data/data50.xml"));
        spread.DataSource = ds;

        // PDF保存時のセキュリティ設定を有効化
        spread.CommandBar.ShowPDFButton = true;
        spread.CommandBar.ShowPDFSecurityPopup = true;
    }

    private void InitSpreadStyles(FarPoint.Web.Spread.SheetView sheet)
    {
        // フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Point(10);
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Point(10);
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Point(10);
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Point(10);

        // 列幅の設定
        sheet.Columns[0].Width = 45;
        sheet.Columns[1].Width = 110;
        sheet.Columns[2].Width = 110;
        sheet.Columns[3].Width = 100;
        sheet.Columns[4].Width = 50;
        sheet.Columns[5].Width = 50;
        sheet.Columns[6].Width = 50;
        sheet.Columns[7].Width = 100;
        sheet.Columns[8].Width = 240;

        // 縦方向の揃え位置を中央に設定
        sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle;

        FarPoint.Web.Spread.PrintInfo pi = new FarPoint.Web.Spread.PrintInfo();

        //ヘッダに「カラー」「イメージ」を設定します
        pi.Colors = new System.Drawing.Color[] { System.Drawing.Color.Purple, System.Drawing.Color.Green, System.Drawing.Color.Indigo };
        pi.Images = new System.Drawing.Image[] { System.Drawing.Image.FromFile(MapPath("~/images/gclogo.jpg")) };
        pi.Header = "/c/fz\"20\"/cl\"0\"/fb1/fu0/fi1 SPREAD for ASP.NET";
        pi.Footer = "/fn\"Arial\"/fz\"10\"/cl\"1\"/fb0/fu0/fi0/dl /ds /tl "
                     + "/c/fn\"Arial\"/fz\"10\"/cl\"2\"/p///pc Page /r/fn\"Times New Roman\"/fz\"14\"/cl\"1\"/fb1/fu0/fi1/g\"0\"";

        pi.ShowColor = true;
        pi.Centering = FarPoint.Web.Spread.Centering.Horizontal;

        // マージンの設定
        pi.Margin.Top = 20;
        pi.Margin.Left = 30;
        pi.Margin.Right = 30;
        pi.Margin.Bottom = 20;
        pi.Margin.Footer = 20;
        pi.Margin.Header = 20;

        //定義したPrintInfoオブジェクトを設定します
        sheet.PrintInfo = pi;
    }
}
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Partial Public Class importexport_pdfpassword
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(sender As Object, e As EventArgs)
        If IsPostBack Then
            Return
        End If

        ' SPREADの設定
        InitSpread(FpSpread1)

        ' シートの設定
        InitSpreadStyles(FpSpread1.Sheets(0))

    End Sub

    Private Sub InitSpread(spread As FarPoint.Web.Spread.FpSpread)
        spread.CssClass = "spreadStyle"
        spread.UseClipboard = False

        ' データ連結
        Dim ds As New System.Data.DataSet()
        ds.ReadXml(MapPath("../App_Data/data50.xml"))
        spread.DataSource = ds

        ' PDF保存時のセキュリティ設定を有効化
        spread.CommandBar.ShowPDFButton = True
        spread.CommandBar.ShowPDFSecurityPopup = True
    End Sub

    Private Sub InitSpreadStyles(sheet As FarPoint.Web.Spread.SheetView)
        ' フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Point(10)
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Point(10)
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Point(10)
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Point(10)

        ' 列幅の設定
        sheet.Columns(0).Width = 45
        sheet.Columns(1).Width = 110
        sheet.Columns(2).Width = 110
        sheet.Columns(3).Width = 100
        sheet.Columns(4).Width = 50
        sheet.Columns(5).Width = 50
        sheet.Columns(6).Width = 50
        sheet.Columns(7).Width = 100
        sheet.Columns(8).Width = 240

        ' 縦方向の揃え位置を中央に設定
        sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle

        Dim pi As New FarPoint.Web.Spread.PrintInfo()

        'ヘッダに「カラー」「イメージ」を設定します
        pi.Colors = New System.Drawing.Color() {System.Drawing.Color.Purple, System.Drawing.Color.Green, System.Drawing.Color.Indigo}
        pi.Images = New System.Drawing.Image() {System.Drawing.Image.FromFile(MapPath("~/images/gclogo.jpg"))}
        pi.Header = "/c/fz""20""/cl""0""/fb1/fu0/fi1 SPREAD for ASP.NET"
        pi.Footer = "/fn""Arial""/fz""10""/cl""1""/fb0/fu0/fi0/dl /ds /tl " & "/c/fn""Arial""/fz""10""/cl""2""/p///pc Page /r/fn""Times New Roman""/fz""14""/cl""1""/fb1/fu0/fi1/g""0"""

        pi.ShowColor = True
        pi.Centering = FarPoint.Web.Spread.Centering.Horizontal

        ' マージンの設定
        pi.Margin.Top = 20
        pi.Margin.Left = 30
        pi.Margin.Right = 30
        pi.Margin.Bottom = 20
        pi.Margin.Footer = 20
        pi.Margin.Header = 20

        '定義したPrintInfoオブジェクトを設定します
        sheet.PrintInfo = pi
    End Sub
End Class

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="pdfpassword.aspx.cs" Inherits="importexport_pdfpassword" %>

<%@ Register Assembly="FarPoint.Web.SpreadJ" Namespace="FarPoint.Web.Spread" TagPrefix="FarPoint" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeaderPlaceHolder1" runat="Server">
    <style type="text/css">
        input[type=checkbox] {
            margin: 3px 3px 3px 4px;
        }
    </style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <FarPoint:FpSpread ID="FpSpread1" runat="server" BorderColor="#A0A0A0" BorderStyle="Solid"
        BorderWidth="1px">
        <CommandBar BackColor="#F6F6F6" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight"
            ButtonShadowColor="ControlDark" ShowPDFButton="True">
            <Background BackgroundImageUrl="SPREADCLIENTPATH:/img/cbbg.gif"></Background>
        </CommandBar>
        <Sheets>
            <FarPoint:SheetView SheetName="Sheet1">
            </FarPoint:SheetView>
        </Sheets>

        <TitleInfo BackColor="#E7EFF7" ForeColor="" HorizontalAlign="Center" VerticalAlign="NotSet" Font-Size="X-Large"></TitleInfo>
    </FarPoint:FpSpread>
</asp:Content>